我正在使用PHP和xPath爬进我拥有的网站(只是抓取html而不是进入服务器)但我收到此错误:
可捕获的致命错误:无法将类DOMNodeList的对象转换为第46行的C:\ wamp\www\crawler.php中的字符串
我已经尝试回应那条线,看看我得到了什么,但我会得到同样的错误,我也尝试谷歌搜索错误,但我,最后,最终在PHP文档,发现我的例子是完全如同一个在PHP文档中除了我正在使用HTML而不是XML ...所以我不知道什么是错的...这是我的代码...
<?php
$html = file_get_contents('http://miurl.com/mipagina#0');
// create document object model
$dom = new DOMDocument();
// load html into document object model
@$dom->loadHTML($html);
// create domxpath instance
$xPath = new DOMXPath($dom);
// get all elements with a particular id and then loop through and print the href attribute
$elements = $xPath->query("//*[@class='nombrecomplejo']");
if ($elements != null) {
foreach ($elements as $e) {
echo parse_str($e);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
编辑
实际上是对不起那条线是在我评论其他东西的时候进行测试...我在这里删除它仍然有错误但是.
Tom*_*lak 10
根据文档," $elements != null"检查是不必要的.DOMXPath::query()将永远返回一个DOMNodeList,但也许它将是零长度,这不会混淆foreach循环.
另外,请注意使用nodeValue属性来获取元素的文本表示:
$elements = $xPath->query("//*[@class='nombrecomplejo']");
foreach ($elements as $e) {
echo $e->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)
你得到错误的原因是你不能提供除字符串以外的任何东西parse_str(),你试过传入一个DOMElement.
| 归档时间: |
|
| 查看次数: |
9503 次 |
| 最近记录: |