5

我需要提供一个关键字,如“蓝色金属水壶”(带/不带引号),并且只获取为此搜索找到的结果数量。如果我现在不带引号进行搜索,我会得到:

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

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

4

3 回答 3

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 的使用条款。

于 2009-11-27T18:07:26.420 回答
1

在 Google Ajax API 中,JSON 中有一个 estimatedResultsCount 属性,但您可以阅读问题跟踪器上提交的未解决投诉:

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

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

于 2009-11-27T18:15:51.487 回答
-1

谷歌很久以前就关闭了他们的 API 供公众使用。如果您想使用受支持的 API,请查看 bing api,该 API 将其作为结果的一部分提供。否则,您将不得不抓取 HTML。请注意,您已显示我们/英文数字的格式。其他谷歌网站和/或您的个人资料设置和/或您的浏览器设置的格式会有所不同。

于 2009-11-27T18:05:36.967 回答