Я использую этот пример для получения ссылок с веб-сайта:
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.
Попробуй это:
$link_title = $href->nodeValue;
Вы ищете «nodeValue» в Textnode внутри узла «a». Вы можете получить это значение с помощью
$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"; }
Печать:
Ссылка сохранена: http://www.test.de DONE