2010-07-20 73 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