Xpath php获取链接

时间:2010-07-20 15:40:48

标签: php xpath domxpath

我正在使用此示例从网站获取链接:

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>

我希望能够获取“谷歌”一词。

我很少迷失并且对xpath很新。

2 个答案:

答案 0 :(得分:5)

您正在寻找“a”节点内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

答案 1 :(得分:2)

试试这个:

$link_title = $href->nodeValue;