我想使用PHP从谷歌中获取图片。所以我试图从网上获得帮助我得到了一个脚本,但是它显示了这个致命的错误
致命错误:在第7行的C:\ wamp \ www \ nq \ qimages.php中的非对象上调用成员函数find()**
这是我的剧本:
<?php
include "simple_html_dom.php";
$search_query = "car";
$search_query = urlencode( $search_query );
$html = file_get_html( "https://www.google.com/search?q=$search_query&tbm=isch" );
$image_container = $html->find('div#rcnt', 0);
$images = $image_container->find('img');
$image_count = 10; //Enter the amount of images to be shown
$i = 0;
foreach($images as $image){
if($i == $image_count) break;
$i++;
// DO with the image whatever you want here (the image element is '$image'):
echo $image;
}
?>
我也在使用Simple html dom。
答案 0 :(得分:0)
查看我的示例,该示例有效,并从谷歌搜索结果中获取第一张图片:
<?php
$url = "https://www.google.hr/search?q=aaaa&biw=1517&bih=714&source=lnms&tbm=isch&sa=X&ved=0CAYQ_AUoAWoVChMIyKnjyrjQyAIVylwaCh06nAIE&dpr=0.9";
$content = file_get_contents($url);
libxml_use_internal_errors(true);
$dom = new DOMDocument;
@$dom->loadHTML($content);
$images_dom = $dom->getElementsByTagName('img');
foreach ($images_dom as $img) {
if($img->hasAttribute('src')){
$image_url = $img->getAttribute('src');
}
break;
}
//this is first image on url
echo $image_url;
答案 1 :(得分:0)
此错误通常意味着$ html不是一个对象。
你说这似乎有用,这很奇怪。如果输出$ html会发生什么?我想象网址不可用且$ html为空。
编辑:看起来这可能是解析器中的错误。有人提交了bug,并在其代码中添加了一个检查作为解决方法。