2

この例を使用して、Web サイトからリンクを取得しています。

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 にはまったく慣れていません。

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 完了

于 2010-07-20T15:54:35.507 に答える
2

これを試して:

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