2009-11-27 71 views
4

我需要提供一个关键字,如“蓝色金属水壶”(带/不带引号),并只获得搜索结果的数量。如果我现在搜索时没有引号,我会得到:如何获得在谷歌搜索关键字的结果数量

Results 1 - 10 of about 1,040,000 for blue metal kettle. (0.19 seconds) 

这里'1,040,000'是我想要的数字。是否有任何API函数来做到这一点,或者我必须通过HTML提取这个数字?什么是最好的方法来做到这一点?

+3

Your gravatar is off by 22,341 points ... – 2009-11-27 17:58:17

+0

@pop,你可以通过upvoting来帮忙:p lol – 2009-11-27 18:36:35

回答

1

从谷歌的Ajax API,有一个在JSON一个estimatedResultsCount属性,但你可以看到在这个问题上跟踪申请未解决投诉:

结果计数变化
http://code.google.com/p/google-ajax-apis/issues/detail?id=32

(我看到问题被标记为PHP,但是可能会引起客户端javascript的关注。)

+0

谢谢,ajax api实际上也可以称为通过php – 2009-11-27 18:34:31

+0

好点。乐意效劳。 – micahwittman 2009-11-27 18:39:53

-1

Google在一段时间之前关闭了它们的API供公众使用。如果您想使用支持的API,请查看将其作为结果的一部分提供的API api。另外,你只需要抓取HTML。请注意,您已经显示了我们/英文数字的格式。其他谷歌网站和/或您的个人资料设置和/或您的浏览器设置的格式会有所不同。

+0

http://www.bing.com/developers/ – 2009-11-27 18:06:49

+0

这个答案是不准确的,因为谷歌支持一个新的api现在称为ajax search api – 2009-11-27 19:02:13

+0

ajax API仅支持搜索结果,而不是总计请求的详细信息。 – 2009-11-27 22:23:28

1

你可以屏幕刮它。例如:

$keywords = "blue metal kettle"; 
$html = file_get_contents("http://www.google.com/?q=" . rawurlencode($keywords)); 
preg_match('/Results 1 - \d+ of about ([0-9,]+) for/', $html, $reg); 
var_dump($reg[1]); 

如果您在应用程序中使用此功能,您可能会违反Google的使用条款。