谷歌搜索:以PHP结果页面为总结果
这个PHP类做的:http://www.phpclasses.org/browse/package/3924.html
“这个类可以用来获取结果给出 谷歌搜索查询的 总数
它访问。 Google搜索网站以 执行查询为给定搜索条件 。
该类解析结果页面,并提取给定搜索查询返回的结果总数 。“
尝试这种使用phpsimplehtmlparser
$search_query = 'google';
$url = sprintf('http://www.google.com/search?q=%s', $search_query);
$html = file_get_html($url);
$results = $html->find('#resultStats/b', 2)->innertext;
echo sprintf('Google found %s results for "%s"', $results, $search_query);
你需要一群取决于你打算发送请求的数量代理。 您可以每天发送约500个请求和IP /代理,而不会造成麻烦或检测到。
您应该阅读google-rank-checker.squabbel.com文章,其中包含PHP中的全功能刮板。使用该刮板,将其修改为您的要求并添加phpsimplehtmlparser(另一个答案)的代码以获取关键字的总点击量信息。
我建议使用libCURL来访问Google本身。 与使用更简单的API相比,您将拥有更多的选择,因为Google很快就会阻止您的脚本,所以您不会对file_get_html()或类似的php内部函数有太多乐趣。
事情是这样的:
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER , 1);
$curl_proxy = "$IP:$PORT";
curl_setopt($ch, CURLOPT_PROXY, $curl_proxy);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en; rv:1.9.0.4) Gecko/2009011913 Firefox/3.0.6");
$url = sprintf('http://www.google.com/search?q=%s', $keyword);
curl_setopt ($ch, CURLOPT_URL, $url);
$htmdata = curl_exec ($ch);
现在只需要使用正则表达式()/ SUBSTR()/的strstr()来抓住从$ htmldata
的数据我使用这个PHP脚本来找出我的名字在google搜索中的总结果。在上述
我的名字定义的路径
<?php
$homepage = file_get_contents('http://www.google.co.in/search?ix=nh&sourceid=chrome&ie=UTF-8&q=Mohit+dabas');
preg_match('/(About)?([\d,]+) result/si', $homepage, $p) ;
echo $p[0];
?>
主要的事情要注意的是“& Q”参数包含空格,因此浏览器增加了“+”,以它
所以你应该检查你的查询(即& q)的参数,如果你的查询包含一些特殊的
字符like。,:,%等,那么你应该注意他们是如何处理的浏览器a nd
更改参数acc。到你的需要int脚本。
srry对于英文不好
我觉得这是对服务条款的规定;) – 2010-04-01 13:07:28
谷歌提供可以通过PHP中使用的搜索API。从未使用过,但可能获得全部搜索结果:http://code.google.com/apis/ajaxsearch/documentation/#fonje_snippets – mre 2010-04-01 13:14:50
如果您连续数次搜索结果,Google可能会阻止你的IP。如果你打算定期这样做,那么你将不得不通过代理或限制每小时的连接数量 – Chris 2010-04-01 13:27:32