0

我不断从我的代码中收到这个错误,我不知道我做错了什么,这有时会发生,它似乎在它想要的时候起作用

错误

 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);                 
        }
    }

如果这本书不存在,爬虫会转到一个空白的“抱歉产品不存在”页面我做错了什么吗?任何帮助,将不胜感激

4

1 回答 1

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);                 
    }
 }
于 2012-05-09T18:03:56.840 回答