2010-07-20 72 views
2

我用這個例子來從一個網站鏈接:Xpath的PHP抓取鏈接

http://www.merchantos.com/makebeta/php/scraping-links-with-php/

$xpath = new DOMXPath($dom); 
$hrefs = $xpath->evaluate("/html/body//a"); 

for ($i = 0; $i < $hrefs->length; $i++) { 
    $href = $hrefs->item($i); 
    var_dump($href); 
    $url = $href->getAttribute('href'); 
    echo "<br />Link stored: $url"; 
} 

它運作良好;獲得所有的鏈接;但我無法獲得鏈接的實際「標題」;例如,如果我有:

<a href="www.google.com">Google</a> 

我也希望能夠獲取'Google'一詞。

我有點迷路,對xpath很陌生。

回答

2

試試這個:

$link_title = $href->nodeValue; 
5

您正在尋找的Textnode的 「的nodeValue」 中的 「一」 節點內。 你可以得到價值與

$title = $href->firstChild->nodeValue; 

全部工作示例:

<?php 
$dom = DomDocument::loadHTML("<html><body><a href='www.test.de'>DONE</a></body></html>"); 

$xpath = new DOMXPath($dom); 
$hrefs = $xpath->evaluate("/html/body//a"); 

for ($i = 0; $i < $hrefs->length; $i++) { 
    $href = $hrefs->item($i); 
    $url = $href->getAttribute('href'); 
    $title = $href->firstChild->nodeValue; 
    echo "<br />Link stored: $url $title"; 
} 

打印:


鏈接存儲:www.test.de DONE