我是dom xpath的新手,我正在尝试将网站编入索引作为练习。我以前使用过simple_html_dom,所以我想尝试在dom xpath中构建而不依赖于第三方库。
我要抓取的网址是:
https://hackdesign.org/lessons
摘录自我的代码:
$scriptDocument->loadHTML($html);
libxml_clear_errors();
$siteDOM = new DOMXPath($scriptDocument);
$base = $siteDOM->query('//div[@class="flex-auto prose"]');
if($base->length > 0) {
foreach ($base as $title) {
$title = $siteDOM->query('//a[@class="red"]');
$hdtitlu = $title->nodeValue;
$hdlink = 'https://hackdesign.org'.$title->getAttribute("href");
echo $hdtitlu . '<br />';
echo $hdlink . '<br />';
}
}
以我的拙见,这应该有效。我从要从中获取数据的基本div开始,然后使用foreach,我试图从特定的html标签获取标题,链接和描述。
我得到的错误:
注意:未定义的属性:第31行的C:\ UwAmp \ www \ test \ index.php中的DOMNodeList :: $ nodeValue
致命错误:未捕获错误:在第32行的C:\ UwAmp \ www \ test \ index.php中调用未定义的方法DOMNodeList :: getAttribute()
错误:在第32行的C:\ UwAmp \ www \ test \ index.php中调用未定义的方法DOMNodeList :: getAttribute()
第31行是:$hdtitlu = $title->nodeValue;
第32行是:$hdlink = 'https://hackdesign.org'.$title->getAttribute("href");
您能指出我正确的方向吗?!
谢谢
克里斯蒂安