我正在使用此示例从网站获取链接:
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很新。
答案 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;