2011-03-11 69 views
0

我正在使用PHP來刮頁。如何在保留名稱的同時從具有特定類的div中刪除鏈接?如何刪除特定類容器內的鏈接(php scrape)?

例如

<p>Our list of teachers:</p> 
<div class="teacher"><a href="...">John Brown</a></div> 
<div class="teacher"><a href="...">Peter Smith</a></div> 
<div class="teacher"><a href="...">Jane Doe</a></div> 

感謝您的幫助, 傑夫

回答

0

使用PHPQuery,一種以類似JQuery的方式操作DOM的方法。

0

phpQuery或QueryPath顯着簡化了這一點。但要提供一個實際例子的答案:

$dom = qp($html); // or $url 
foreach ($dom->find("div.teacher a") as $a) { 
    $a->replaceWith($a->text()); 
} 
$html = $dom->writeHTML(); 
+0

感謝這看起來不錯。我不熟悉phpQuery - 使用它有什麼作用?它只是一個鏈接到圖書館? – Geoff

+0

是的,它是DOMDocument的一個庫包裝(本身有點麻煩)。 phpQuery有更好的文檔,但QueryPath允許只寫'qp($ html)',這就是我更喜歡它的原因。您需要下載幷包含()以使用緊湊函數調用。 – mario

+0

感謝馬里奧,對於遲來的答案感到抱歉,(但我不得不擱置一會兒。)這實際上是現有腳本的一部分 - 是否可以在沒有phpQuery或QueryPath庫的情況下執行 - 即使用普通的php ? – Geoff