我正在尝试构建这个从某个新闻门户获取新闻的脚本。这应输出新闻编号,新闻标题,图像,源URL和新闻内容。它应该可以获取50篇文章,但是在一个随机数字中它将停止获取并抛出致命错误,声明基本上find()正在调用一个空的不存在的对象。
Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\project\test2.php on line 7
我只是不明白为什么它永远不会获取所有新闻,而是取出随机数量的新闻直到错误发生。随便,有时它起作用并显示所有50篇新闻文章。
问题似乎出现在这一行:
$article = file_get_html($link);
foreach($article->find('div.article') as $content){
但下面是完整的脚本。如果您需要澄清任何其他内容,请告诉我,建议表示赞赏。
$t=0;
$page = file_get_html('http://www.website.com/?');
foreach($page->find('div[class="news-other-box"] h3 a') as $crawl){
$title = $crawl->plaintext; //gets article title
$link = $crawl->href; //gets article link
$article = file_get_html($link); //fetching article page
foreach($article->find('div.article') as $content){
$content=$content->plaintext;//fetching content of article
foreach($article->find('img[itemprop]') as $img1){
$img=$img1->src;
$img=saveIMG($img,'news_images'); //save img function, and returns image path "images/source/image_name.jpg"
}
echo "<b>" . $t . "</b>\n ";
echo $title . "<br>\n";
echo '<img src="'.$img.'" /> ' . "<br>\n";
echo $link . "<br>\n" ;
echo $content . "<br><br>\n";
$t++;
}
}