谷歌自定义搜索整个网络和限制(gizoogle)

时间:2013-12-19 17:33:34

标签: javascript node.js search-engine google-search-api google-custom-search

我正在开发一个需要访问谷歌搜索结果的搜索引擎。以下是我的选择:

  • 使用自定义搜索API
  • 使用代理使我的服务器发送搜索并返回数据

我不确定某些事情:

自定义搜索API是否受限制?我可能需要大量的查询,所以如果使用有限,那将是一个问题。

是否“授权”在节点中使用代理,该代理会向Google发送搜索查询并拦截结果以向我的用户显示?如果我这样做,我不会遇到一些限制吗?

这里的灵感是gizoogle设法插入谷歌API(它们与谷歌的结果相同),但仍未使用自定义搜索(自定义搜索显示添加,此网站上没有任何内容) 。所以我假设他们有某种代理,但谷歌怎么让他们运行这些查询呢?

编辑:事实证明,自定义搜索API也受到限制。那么,gizoogle是如何做到的?

3 个答案:

答案 0 :(得分:3)

好的,我是如何解决这个问题的:

事实证明,谷歌有一个丢失的API(可能已经弃用,所以要注意这一点)用于客户端ajax搜索。它看起来像是:

http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=test&rsz=large

只需转到that url即可了解其结果。

所以基本上就是这个过程:

  • 用户键入搜索
  • 它将以ajax
  • 发送到您的服务器
  • 服务器可能会根据您的应用程序修改搜索(过滤禁止的词或其他)
  • 您的服务器从google轮询ajax网络服务 - 不要忘记添加get参数userIp以避免限制(谷歌限制来自每个用户的传入查询,因此您的服务器具有告诉谷歌它代表此userIp
  • 提出请求
  • 您将结果发送回客户端,然后使用javascript显示它们

唯一的缺点是必须在ajax中进行搜索,这意味着页面在加载时为空并在以后填充。但实际上你可以在URL中使用get参数来预加载搜索并填充页面,然后再将其发送到客户端。

答案 1 :(得分:2)

Google自定义搜索(GCS)有一个free mode and a paid ("enterprise") mode

这两种模式都受服务条款(Custom Search Terms of Service)的约束 - 请务必仔细阅读。

根据我的理解,您可以使用免费模式并尽可能多地搜索。由于谷歌会返回结果,他们也会返回广告,因此他们会以这种方式获得报酬。

付费模式可让您访问API,让您关闭广告并执行其他操作。但是it comes at a cost

我一直在梳理文档和术语等 - 这真的不是Google的最佳努力。但是如果你正如他们所描述的那样使用它,那真的很标准。

答案 2 :(得分:0)

取决于您的项目规模和可用资金,但您可以获得GSA http://www.google.com/enterprise/search/products/gsa.html

奥兹博士网站使用它来索引和提取合作网站的结果,您也可以包含Google搜索结果。从源重量排名,过滤选项到自定义输出的工作高度可定制。