使用dom从谷歌中获取图像

时间:2015-10-20 06:38:05

标签: php html image dom

我想使用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

2 个答案:

答案 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,并在其代码中添加了一个检查作为解决方法。