如何估算Google搜索结果

时间:2014-08-11 15:13:30

标签: ruby-on-rails ruby

有没有办法在Ruby中获得Google的搜索结果估算值?我希望找回谷歌所说的有价值的数据"大约32,300,000个结果"在搜索特定术语后。谢谢。

1 个答案:

答案 0 :(得分:1)

  

我觉得刮痧可能不是最优雅的解决方案。

正确。 Google has a Custom Search API他们希望你利用这些优势。使用它将避免违反其服务条款,并将直接向您提供信息。

特别是,他们的REST API可以基于简单查询返回JSON。

他们曾经拥有一个更像“普通”的界面,就像他们基于网络的搜索页面一样,但是不赞成使用自定义搜索API。我怀疑这是因为第一种是霰弹枪方法,并且会消耗大量的CPU时间,而较新的API会针对特定的站点/搜索。

https://developers.google.com/web-search/docs/

根据their old Perl sample,这里有一段显示该工作原理的小片段:

#!/usr/bin/env ruby

require 'json'
require 'socket'
require 'open-uri'

IP = IPSocket.getaddress(Socket.gethostname)

# The request also includes the userip parameter which provides the end
# user's IP address. Doing so will help distinguish this legitimate
# server-side traffic from traffic which doesn't come from an end-user.
URL = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=lectures&userip=#{ IP }"

body = open(URL).read

# process the json string
response = JSON[body]

response['responseData']['cursor']['estimatedResultCount'] 
# => "13800000"

请注意,Google正在限制该界面,其使用寿命未知,因此使用它可能会浪费您的时间。请改用自定义搜索引擎。