2

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

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有点迷茫并且很陌生。

4

2 回答 2

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

于 2010-07-20T15:54:35.507 回答
2

试试这个:

$link_title = $href->nodeValue;
于 2010-07-20T15:50:47.000 回答