现在Google网页搜索API已被弃用,有哪些替代方案?

346

Google Web Search API已被弃用,取而代之的是自定义搜索API(请参见http://code.google.com/apis/websearch/)。

我想搜索整个网络,但似乎新API只能搜索自定义站点。

是否有一种编程方式可以搜索整个网络? 我曾能够使用Java程序从旧API中查询JSON。


我一直在使用另一种谷歌搜索API,它非常易于使用。 - user12541086
3
还有SerpApi。这是Google搜索和其他引擎的可靠解决方案。 - Hartator
1
https://www.serphouse.com 是一个使用 API 获取数据的绝佳解决方案。 - Mehul V.
10个回答

502

是的,Google Custom Search现已替代了旧的搜索API,但您仍然可以使用Google Custom Search搜索整个网络,尽管从Custom Search设置中的步骤不明显。

创建一个可以搜索整个网络的Google Custom Search引擎:

  1. 从Google Custom Search主页(http://www.google.com/cse/),单击创建自定义搜索引擎。
  2. 键入搜索引擎的名称和描述。
  3. 在“定义搜索引擎”下,在“要搜索的站点”框中输入至少一个有效的URL(现在,只需放入www.anyurl.com以通过此屏幕。稍后再做更多介绍)。
  4. 选择您想要的CSE版本并接受服务条款,然后单击下一步。选择您想要的布局选项,然后单击下一步。
  5. 单击“下一步”部分下的任何链接以导航到控制面板。
  6. 在左侧菜单中,在“控制面板”下,单击“基本信息”。
  7. 在“搜索首选项”部分中,选择“搜索整个网络,但强调包含的站点”。
  8. 单击保存更改。
  9. 在左侧菜单中,在“控制面板”下,单击“网站”。
  10. 删除您在初始设置过程中输入的站点。

现在,您的自定义搜索引擎将搜索整个网络。

价格

  • Google Custom Search为您提供每天100个查询免费。
  • 此后,您每1000个查询需支付5美元。
  • 查询每天最多达10000次。

来源:https://developers.google.com/custom-search/json-api/v1/overview#Pricing


  • 搜索质量比普通Google搜索要低得多(没有同义词,“智能”等)。
  • 看起来Google甚至计划彻底关闭这项服务。

28
谢谢您。希望这是一个有效的步骤,而不是Google等待堵上的漏洞! - Mazatec
9
谢谢!这可能是互联网上唯一回答了我的问题。令人费解的是,Google为何要终止对其核心服务提供直接API支持。 - spamguy
7
但如何在JSON中使用它? - nawara
71
警告:我们使用免费版进行开发,但要升级为付费版(以执行超过100次搜索),谷歌会强制关闭“搜索整个网页但重点包括在内的站点”的功能。 - Bryan Larsen
5
2017年4月1日,谷歌将停止销售Google网站搜索服务。所有新购买和续订必须在该日期之前完成。该产品将于2018年4月1日完全关闭。 - Gajus
显示剩余22条评论

59

Google自定义搜索(如最高评价的答案所推荐)效果不错,但与其竞争对手或其他Google API相比非常昂贵。它有一个较小的免费层次(每日100个查询),而且每1000个查询的价格非常高,为5美元。

他们提供升级到站点搜索的选项,价格略微更好,但那是为了搜索一个网站(您自己的网站),因此实际上是完全不同的东西 - 而不是升级。

主要的替代方案似乎是:

Bing Search API
https://datamarket.azure.com/dataset/5BA839F1-12CE-4CCE-BF57-A49D98D29A44
有5000q /月的免费层次,价格从每个一便士的5个查询开始,没有硬性限制。

更新:在2016年底,由于其Azure对应API“认知服务Bing搜索API”的优势,关闭了此API:
https://azure.microsoft.com/en-us/services/cognitive-services/search/

在此处查看价格表,从每1000次交易的3美元/月开始。除非我漏掉了什么,否则它相当昂贵。

Yahoo BOSS Search API
更新:于2016年3月31日停用。 http://developer.yahoo.com/boss/search/
针对整个Web搜索,价格约为12个查询/便士起步。

还有一些我以前没有听说过:

http://www.gigablast.com/searchfeed.html

http://www.faroo.com/hp/api/api.html

http://www.commoncrawl.org/

http://www.entireweb.com/search_api/implementation/
[已停止 - 如下所指出]

这些内容在此SO帖子中有一些讨论。
[因为离题而关闭,现已删除]


2
Bing Search API版本5现在允许每月在所有Bing搜索API(Web,Images,Video,News Search)中进行高达1,000次的交易-https://www.microsoft.com/cognitive-services/en-us/pricing。我整理了一些示例-http://mvark.blogspot.in/2016/06/how-to-use-bing-search-v5-api-with.html - mvark
entireweb.com已经停止提供服务,详情请见http://www.entireweb.com/services。 - Wessam El Mahdy
1
2016年12月15日,Bing Web Search API将移至Azure Marketplace的Cognitive Services下(https://azure.microsoft.com/en-us/services/cognitive-services/search/),这需要进行电话和信用卡验证以订阅(即使是免费的)。 - gilad905
从Bing API: "DataMarket和Data Services将被淘汰,并将在2016年12月31日后停止接受新订单。现有的订阅将在2017年3月31日开始被淘汰和取消。如果您想继续使用服务,请联系您的服务提供商以获取选项。" - Dmitri Zaitsev
1
看起来Bing又把他们的服务搬到了Azure Marketplace上。https://learn.microsoft.com/en-us/bing/search-apis/bing-web-search/create-bing-search-service-resource - Kyle
显示剩余2条评论

41

你可以像浏览器一样直接发送它们,然后解析HTML,这就是我一直以来的做法,即使对于像YouTube这样的东西也是如此。


66
据我所知,谷歌的服务条款禁止爬虫抓取... - Steven A. Lowe
56
根据TOS的规定:“您需明确同意不通过任何自动化手段(包括使用脚本或网络爬虫)访问或试图访问任何服务…” - ændrük
19
建议违反服务提供商的服务条款从来不是一个好主意。解析网页是一种突然间可能会被破坏的行为,这是一个糟糕的建议,因此它被踩得比赞多。 - WhyNotHugo
165
是的,这违反了服务条款,但我个人不会担心。毕竟,谷歌可以处理一点点的抓取,他们利用抓取其他网站已经赚了很多钱了。 - jimbo2087
119
大家不要太天真了。谷歌不能硬生生地强迫你接受服务条款。为了违反服务条款,你必须首先同意它(以书面形式或通过点击“是,我同意条款”等按钮)。想一想:如果我在我的网页上加入了一项每个访问该页面的人都必须给我10000美元的服务条款,我能强制执行这个服务条款吗?他们有必要立刻付钱给我吗? - Gabriel
显示剩余28条评论

26

在自定义搜索控制面板的底部有一个选项:“要搜索的站点”,您可以选择“搜索整个网络,但强调包括的站点”

Custom Search Control Panel - Sites to search


1
它对你仍然有效吗? - Dejell
是的,它仍然可以运行。 - user3477312
5
当您升级为付费搜索时,Google会强制您关闭该选项。而免费搜索的次数有一个限制,最多只能进行100次搜索。 - Bryan Larsen
1
@Yishu,为什么这个页面https://support.google.com/customsearch/answer/141877?hl=en上说“您无法配置Google网站搜索以搜索整个网络”? - Pacerier
@Pacerier,我不知道。也许政策已经改变了? - Yishu Fang

14

@Jack,我之前没听说过这个。他们的搜索结果是从哪里获取的? - Pacerier
7
Faroo可能会被这个问题阻碍,因为你的API密钥只能在注册时指定的IP地址上使用。 - Uncaught Exception
6
这些人还在运营吗?我请求了API密钥,但没有收到任何回复。 - Paul Whelan
现在重定向到 https://seekstorm.com/,这是一项付费服务。 - Big Ian
有一个SerpApi,它可以提供来自26多个搜索引擎(包括Google)的实时原始JSON结果。有10个API封装器。请注意,它不是一个爬虫。 - Dmitriy Zub
显示剩余2条评论

7

3
它的索引有限,大约每年刷新一次。而且价格相当昂贵,因为你需要连接到Amazon S3。 - Guillaume Lebourgeois
@GuillaumeLebourgeois,昂贵?我不认为是这样的。它是一个非营利性组织。整个102 TB的数据都可以免费下载。 - Pacerier
费用是为了连接到AWS,从而可以访问它。如果您是学生,则有资格获得免费套餐,但仍可能存在传输成本等;如果您不在免费套餐中,则会有运行成本。 - tripleee
1
看起来Common Crawl现在每月都会更新。 - Jack
目前(2022年2月),可以免费从S3下载数据。HTTP链接可以在CommonCrawl网站上找到。 - x-ray

4

文档上方有一条注释:

注意:Google Web Search API自2010年11月1日起被正式弃用。根据我们的弃用政策,它将继续工作,但您每天可以发出的请求次数将受到限制。因此,我们建议您转向新的Custom Search API

弃用政策说明他们将继续运行API三年。因此,如果您已经有一个使用旧API的应用程序,您不必急于更改。如果您正在编写新的应用程序,请使用Custom Search API。查看我在这里的回答以了解如何在Python中执行此操作,但对于任何语言,思路都是相同的。


8
它并不是免费的... "每1000次查询5美元"... 非常不免费! - UpTheCreek
1
这个答案已经过时了,因为三年时间已经到期,而且2014/09/29已经过去了。 - nanofarad
1
CustomeSearchAPI并不在所有的网站上 - 它是为用户网站而设计的。 - Dejell

3

还有一个google-search-results-java,它是Java的SerpApi包装器。 - Dmitriy Zub

1

0
您可以在Google自定义搜索主页(http://www.google.com/cse/)上创建“随处可搜”自定义搜索引擎。 在添加新引擎时,只需单击“高级”。 在那里,您可以提供Schema.org网站类型。 'Thing'是最通用的类型,涵盖了所有网络。

我没明白。对你有效吗? - Dejell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接