谷歌在整个网页上的自定义搜索和限制(gizoogle)



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

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

我对一些事情不确定:

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

是否"授权"在节点中使用代理,将搜索查询发送到谷歌并截取结果显示给我的用户?如果我这样做,我会不会遇到一些限制?

这里的灵感来自gizoogle,它成功地插入了谷歌API(它们的结果与谷歌相同),但仍然不使用自定义搜索(自定义搜索显示增加了,这个网站上没有)。所以我认为他们有某种代理,但谷歌为什么让他们运行这些查询?

编辑:原来自定义搜索API也是有限的。那么,吉佐格尔是怎么做的呢?

好的,下面是我解决这个问题的方法:

事实证明,google有一个用于客户端ajax搜索的丢失的API(可能已弃用,请注意这一点)。看起来是这样的:

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

只需访问该url即可查看结果。

所以基本上是这样的过程:

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

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

谷歌自定义搜索(GCS)有免费模式和付费("企业")模式。

这两种模式都受服务条款(自定义搜索服务条款)的监管-请务必仔细阅读。

据我所知,你可以使用免费模式,随心所欲地搜索。因为谷歌会返回结果,他们也会返回广告,所以他们可以通过这种方式获得报酬。

付费模式允许您访问API,让您关闭广告并做其他事情。但这是有代价的。

我一直在梳理文档和术语之类的东西——这真的不是谷歌的最大努力。但如果你完全按照他们描述的那样使用它,那真的很标准。

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

Oz博士的网站使用它来索引和提取合作网站的结果,你也可以包括谷歌的结果。高度可定制的工作从源权重排名,过滤选项到自定义输出。

最新更新