php提取对谷歌图像搜索的图像结果的最佳猜测?
发布时间:2020-12-13 17:19:22 所属栏目:PHP教程 来源:网络整理
导读:我有一个要求,我必须在谷歌上反向查找图像,并提取印在“最佳猜测此图像:”标题上的名称. 不,我对网上现有的卷曲代码进行了一些修改,并且到目前为止: ?phpfunction fetch_google($terms="sample search",$numpages=1,$user_agent='Mozilla/5.0 (Windows NT
我有一个要求,我必须在谷歌上反向查找图像,并提取印在“最佳猜测此图像:”标题上的名称.
不,我对网上现有的卷曲代码进行了一些修改,并且到目前为止: <?php function fetch_google($terms="sample search",$numpages=1,$user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0') { $searched=""; for($i=0;$i<=$numpages;$i++) { $ch = curl_init(); $url="http://www.google.com/searchbyimage?hl=en&image_url=".urlencode($terms); curl_setopt ($ch,CURLOPT_URL,$url); curl_setopt ($ch,CURLOPT_USERAGENT,$user_agent); curl_setopt ($ch,CURLOPT_HEADER,0); curl_setopt ($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt ($ch,CURLOPT_RETURNTRANSFER,CURLOPT_REFERER,'http://www.google.com/'); curl_setopt ($ch,CURLOPT_CONNECTTIMEOUT,120); curl_setopt ($ch,CURLOPT_TIMEOUT,CURLOPT_MAXREDIRS,10); curl_setopt ($ch,CURLOPT_COOKIEFILE,"cookie.txt"); curl_setopt ($ch,CURLOPT_COOKIEJAR,"cookie.txt"); $searched=$searched.curl_exec ($ch); curl_close ($ch); } $xml = new DOMDocument(); @$xml->loadHTML($searched); foreach($xml->getElementsByTagName('div') as $div) { if(strpos($div->nodeValue,"Best guess for this image:")) return $div->nodeValue; } } $content = fetch_google("http://media.il.edmunds-media.com/aston-martin/as/03/de/aston-martin_front_03-de-as_1_276.jpg",1); echo $content."<br>"; ?> 但它给了我很多文字,我无法得到它的确切div. 请帮忙! 解决方法
你可以改用preg_match.
当您从CURL获取HTML时,您可以使用Regex来匹配文本: function fetch_google($terms="sample search","cookie.txt"); $searched=$searched.curl_exec ($ch); curl_close ($ch); } $matches = array(); preg_match('/Best guess for this image:[^<]+<a[^>]+>([^<]+)/',$searched,$matches); return (count($matches) > 1 ? $matches[1] : false); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |