我一直从我的代码中得到这个错误,我不知道我做错了什么,这种情况偶尔发生,似乎在它想要的时候工作
错误
Call to a member function find() on a non-object in C:\xampp\htdocs\sites\P\Find.php on line 265
我基本上创建了一个抓取工具,在网页上搜索网页上的元素,有时这个元素可能不会出现在页面上,我会使用if语句检查这个。
第265行指的是
if($page->find('div#olpDivId span.price'))
码
$page = file_get_html('http://www.amazon.co.uk/dp/0304362212');
if($page->find('div#olpDivId span.price')){
foreach($page->find('div#olpDivId span.price') as $p){
$i[] = floatval($p->plaintext);
}
}
如果该书不存在,则抓取工具会转到空白的“抱歉产品不存在”页面 难道我做错了什么?任何帮助将不胜感激
答案 0 :(得分:1)
file_get_html
可以返回false(如果无法从网页上获取内容),那么您应该在使用$page
$page = file_get_html('http://www.amazon.co.uk/dp/0304362212');
if($page !== FALSE){
foreach($page->find('div#olpDivId span.price') as $p){
$i[] = floatval($p->plaintext);
}
}