javascript - Google 在整个网络上的自定义搜索和限制 (gizoogle)

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

我正在开发一个需要访问 google 结果的搜索引擎。这是我的选择:

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

虽然有些事情我不确定:

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

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

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

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

最佳答案

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

事实证明,谷歌丢失了一个用于客户端 ajax 搜索的 API(可能已被弃用,因此请注意这一点)。看起来像这样:

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

只需转到 that url看看它给出了什么结果。

基本上流程是这样的:

  • 用户输入搜索
  • 它以 ajax 的形式发送到您的服务器
  • 服务器可能会根据您的应用修改搜索(过滤禁用词或其他)
  • 您的服务器从 google 轮询 ajax web 服务 - 不要忘记添加 get 参数 userIp 以避免限制(google 限制每个传入查询用户,所以你的服务器必须告诉谷歌它正在代表这个 userIp
  • 发出请求
  • 你把结果发回给客户端,然后用javascript显示出来

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

关于javascript - Google 在整个网络上的自定义搜索和限制 (gizoogle),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20688117/

相关文章:

javascript - ESLint、Create React App 和 Unused Vars 错误

javascript - 对同一个幻像实例使用两次 createPage()

seo - robots.txt 允许除少数子目录外的所有子目录

java - lucene只能排序搜索什么都不行吗?

html - 包括使用 HTML 元标记的多个作者,以及如何确保 Google 使用元描述而不是页面内容

javascript - 如何删除/重置window.onfocus功能?

javascript - 如何在执行悬停功能之前添加等待时间

javascript - Node.js/javascript 像 PHP 中的 mcrypt_ecb 一样加密 AES-128

javascript - 在谷歌应用程序脚本中解析 html 的最佳方法是什么

node.js - 如何在 node.js 中发布内容类型为 ='application/x-www-form-urlencoded' 的数据