google web search api已被弃用,并替换为自定义搜索api(请参阅http://code.google.com/apis/websearch/)。
我想搜索整个网站,但在新的API中,只能搜索自定义网站。
有没有一种方法可以用程序搜索整个网页?我能够从Java程序中使用JSON查询旧的API。
- 好吧,我对这个做了很多研究,看起来唯一的解决方案是雅虎老板
- 自定义搜索API不是大多数人要找的:-/give search api.io一看!
- 我在各种各样的搜索API上做了POC,这些API提供了大量的特性,并且很容易在几分钟内实现。swiftype(swiftype.com)、cludo(cludo.com/en)、algolia(algolia.com/doc)也是我已经实现和测试的API。我也可以提供详细的答案,但这个问题已经结束了。
- 最好的解决方案是使用像serpapi这样的第三方服务
- Masswerk.at/GoogleBbs公司
是的,Google自定义搜索现在已经取代了旧的搜索API,但是您仍然可以使用Google自定义搜索来搜索整个Web,尽管自定义搜索设置中的步骤并不明显。
要创建搜索整个网站的谷歌自定义搜索引擎,请执行以下操作:
在Google自定义搜索主页(http://www.google.com/cse/)中,单击创建自定义搜索引擎。
键入搜索引擎的名称和说明。
在"定义搜索引擎"下的"要搜索的网站"框中,至少输入一个有效的URL(现在,只需输入www.anyurl.com即可通过此屏幕。以后再谈)。
选择所需的CSE版本并接受服务条款,然后单击下一步。选择所需的布局选项,然后单击下一步。
单击"下一步"部分下的任何链接导航到控制面板。
在左侧菜单的"控制面板"下,单击"基本"。
在"搜索首选项"部分,选择"搜索整个网站",但强调包含的网站。
单击保存更改。
在左侧菜单的"控制面板"下,单击"站点"。
删除在初始设置过程中输入的站点。
现在,您的自定义搜索引擎将搜索整个网站。
定价
- 谷歌自定义搜索每天为您提供100个免费查询。
- 之后,每1000个查询就要支付5美元。
- 每天最多有10000个查询。
来源:https://developers.google.com/custom search/json api/v1/overview定价
- 搜索质量远远低于普通的谷歌搜索(没有同义词,"智能"等)。
- 谷歌似乎甚至计划完全关闭这项服务。
- 谢谢。希望这是一个有效的程序,而不是等待被谷歌堵住的漏洞!
- 确认正在工作。不过,结果与实时搜索略有不同。有什么想法吗?必应的API也有同样的问题。
- 谢谢您!这可能是互联网上解决我问题的唯一答案。令人难以置信的是,为什么谷歌会终止对其核心服务的直接API支持。
- 但是如何与JSON一起使用呢?
- 由于个性化和本地搜索结果,结果略有不同。
- 太好了,但我所说的是,有报酬吗??
- @Deepanshu每天只有100个免费查询(docs)。
- 这就是为什么谷歌声称搜索结果是不同的支持。google.com/customsearch/answer/141877?hl=en主要:使用指定站点(此处不适用),没有社交、个性化或实时结果
- 你有机会更新这个问题以反映新的布局吗?似乎找不到问题的一半。
- 里波——我好久没回来了……但是,即使他们改变了布局,这种方法也可能是合理的:创建一个搜索引擎来搜索一个特定的站点和整个网站。然后删除那个特定的站点。剩下的应该是一个普通的网络搜索。他们可能已经关闭了漏洞…但如果它仍然可以做到,这个一般性的建议可能会有所帮助。祝你好运。
- 并且…如果他们关闭了漏洞,现在迫使你至少搜索一个网站。您可以尝试创建内容为零的URL/网站。只是一个空白的index.html页面。然后,结果应该与一般的Web搜索相同。只是一个想法…
- 我试过了,但现在不行。我要求在整个网页上查找suunto ambit watch,但没有任何结果(我在公共URL中搜索得到的结果)
- 注意:这只适用于免费版本支持。google.com/customsearch/answer/2631040
- @它不仅会错过社交/现场/等数据。它不允许基于同义词进行搜索,而且完全缺少智能。例如,"john doe northpole"不会返回结果,如果"john doe"现在居住在"南极",并且在他的网站上更改了此信息,或者删除了"northpole"这个词,或者他或你做了一个类似"nortpole"的拼写错误。在我看来,自定义搜索几乎是无用的。
- 警告:我们使用免费版本进行开发,但要升级到付费版本(要进行100多次搜索),谷歌强制您关闭"搜索整个网站,但强调包含的网站"。
- @布赖恩拉森,仍然有可能使用没有最低100/天限制的旧API,对吧?
- @Bangkokian,为什么每天有10万个查询的硬限制?假设你可以支付,那么你如何获得每天超过10万个查询?是否创建多个键?
- 我不知道以前是怎样的,但是现在你必须建立一个账单账户,不管你使用的是免费的还是付费的。真倒霉。
- entireweb.com已停止提供此服务,如此处所示entireweb.com/services
- 这仍然有效。
- "2017年4月1日,谷歌将停止销售谷歌网站搜索。所有新的购买和更新必须在此日期之前进行。到2018年4月1日,产品将完全关闭。"
- 谷歌自定义搜索整个网站,但它不会给你超过100个搜索查询结果,即使你是一个付费客户。
- 谷歌自定义搜索主页(google.com/cse)总是返回500个错误…有人面临同样的问题吗?
- 值得补充的是,除了如此低的限制外,每个查询只允许10个结果
与竞争对手(低于竞争对手)或与其他Google API相比,Google自定义搜索(如评价最高的答案中所提倡的)效果很好,但价格非常昂贵。它有一个小的免费层(每天100个查询),每1000个查询的价格非常高,为5美元。
他们提供了升级到网站搜索的选项,这有点好的价格,但这是为了搜索一个网站(你自己的),所以它确实是相当不同的东西-不是升级。
主要的选择似乎是:
Bing搜索APIhttps://datamarket.azure.com/dataset/5ba839f1-12ce-4cce-bf57-a49d98d29a44免费提供5000Q/月,价格从每便士5个查询开始,没有硬性限制。
更新:2016年底,为了支持其Azure对应的"认知服务Bing搜索API",该API被关闭:https://azure.microsoft.com/en-us/services/cognetic-services/search/搜索/
请参阅此处了解定价表,1000笔交易的起价为3美元/m。除非我找不到东西,否则很贵。
雅虎老板搜索API更新:于2016年3月31日中止。http://developer.yahoo.com/boss/search/整个网络搜索的价格从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/[停产-如下所述]
在这篇文章中有一些讨论。[因话题偏离而关闭,现在不见了]
- Bing搜索API第5版现在允许每月在所有Bing搜索API(web、图片、视频、新闻搜索)上进行多达1000次交易-microsoft.com/cognitive-services/en-us/pricing。我收集了一些样本-mvark.blogspot.in/2016/06/…
- entireweb.com已停止提供此服务,如此处所示entireweb.com/services
- 2016年12月15日,必应网络搜索API将在Azure Marketplace(azure.microsoft.com/en-us/services/cognitive-services/searc‌&误8203;h)的"认知服务"下运行,这需要对订阅进行电话+信用卡验证(即使是免费订阅)。
- 来自必应API:"数据市场和数据服务正在退役,2016年12月31日后将停止接受新订单。现有订阅将从2017年3月31日起失效和取消。如果要继续服务,请联系您的服务提供商以获取选项。"
- 感谢您指出更改-我已经相应地更新了答案。
你可以像浏览器一样发送它们,然后解析HTML,这是我一直在做的,即使是像YouTube这样的事情。
- 我真的需要一个适当的API调用,因为我打算进行很多调用。
- 我听说谷歌的服务条款禁止蜘蛛…
- 来自TOS:"您明确同意不通过任何自动方式(包括使用脚本或网络爬虫)访问(或尝试访问)任何服务…"
- 简陋,规模不大。如果这个程序是个人使用的话…
- @Zimm3r阅读了"向下投票"按钮上的工具提示;这就是为什么。另外,因为谷歌的TOS不允许这个建议。
- @雨果的答案是有用的,因为它做了被问到的事情,我仍然被否决了一个被接受的答案,这是有效的,这是有用的,而且是阿斯克瑟的责任,决定谷歌不是我的。
- @如果答案有用或不主观,则为zimm3r。我觉得和OP有同样的问题没用,因为它既不是一个干净的解决方案,也不是TOS允许的解决方案。
- @雨果不,这不是主观的,或者至少不是你所说的那种程度,如果它以一种可行的方式回答这个问题,那么它是有用的,违反TOS的行为是需要加权的,而不是完全无用的。
- "违反服务提供商的服务条款"从来不是一个好建议。解析网页是一种从一天到下一天毫无预警的方式,这是一个糟糕的建议——这就是为什么它被否决的次数更多,而被否决的次数更多。
- 我不记得我告诉他们要打破TOS,我给了他们一个被认为是最好的有效答案,这是他们选择用这些信息做他们想做的事情。
- 是的,这违反了服务条款,但我个人不担心。谷歌可以处理一点点的刮削,毕竟他们在刮削别人的网站上赚了大钱。
- 来吧,伙计们。别那么天真。谷歌不能强迫你这么做。为了违反TOS,您必须首先同意它(以书面形式,或单击"是,我接受条款")。想想这个:我在我的网页上写了一个TOS,每个访问那个网页的人都必须给我1万美元。我可以对我的访客强制执行这个任务吗?一定要马上给我。
- @他们仍然可以阻止你的IP;)有没有在谷歌搜索中看到过验证码?有些人有。
- @祭坛这完全是不真实的。如果您的程序运行在专用服务器上,那么它肯定有一个静态IP。此外,拥有动态地址仍然意味着您必须手动重新连接才能获得新地址。
- @圣坛只是说"来吧"并不能神奇地消除所有的障碍。你必须遵守法律的限制。
- @wgh现在大多数路由器都可以选择在午夜取回一个新的IP。
- @祭坛,你是对的,但最终你可能会违反像en.wikipedia.org/wiki/sui-generis-database-right这样的法律,或者像dejure.org/gesetze/stgb/303b.html这样的德国法律,所以这取决于你的国家和法律,当然也取决于谷歌所在国家的法律。但最后谷歌更容易禁止ips。当然,你可以随时重新连接并获得一个新的IP,但谷歌可能会使用地理数据库来阻止你所在的地区比其他地区更频繁(例如,如果你在5分钟内搜索10次)。
- 不,你不能对随机的网络冲浪者强制执行TOS。然而,创建一个程序来抓取一个网页显示出明确的意图和所需的技能,这样做会使你处于一个更高级别的"理性人"。你可能不会输掉刑事诉讼,但可能会输掉民事诉讼。碘醛参考号:Aaron Swartz。
- -1@zimm3r,你说你提供了"有效答案",但我不同意。我不认为它是一个有效的答案,当它需要使用一个网络服务,而具体打破了他们的T.O.S.你的解决方案不能使用没有违反谷歌的使用条款,因此在我看来,不是一个真正有效的答案。就像有人告诉你他们需要钱买杂货,而你建议他们抢劫银行。当然,从技术上讲,这是一种选择,但不可能奏效。
- 答案的有效性并不意味着"总是适用"。谷歌的服务条款可能会改变——毕竟他们已经改变了。如果你需要少量的文件,你不会伤害大G。
- 违反你从未被迫同意的TOS不是违法的。实际上,在没有选择退出手段的情况下试图强制执行TOS是不合法的。在这方面,每一个网站和服务,如果认为我可以通过访问而不需要我的任何输入,就可以合法地强制执行特定的行为,那就直接吸吮它。
- 抓取网页有这些缺点:(1)谷歌不喜欢它-你可能面临知识产权禁令,验证码和其他障碍。(2)网页的HTML代码经常改变-你将在长期项目中一次又一次地修改你的代码。(3)API可以提供比网页更多的搜索结果元数据。我对这个答案投了反对票。但我不是什么纳粹法律。由于上述原因,这种方法根本不好。
- @æ;ndr&252;k自2012年3月以来,关于自动化手段的部分已经从他们的TOS中消失。
- @Rustyx仍然违反了这些条款:"不要干扰我们的服务,或者尝试使用我们提供的接口和指令之外的方法访问它们。"
- 顺便说一句:谷歌如此坚定不移地防止刮屏并不是因为你认为的原因:这并不是因为它可能需要便宜的带宽。这是因为谷歌最有价值的资产之一,就是它的查询日志是对集体意识最有力的洞察之一。被机械化的查询所污染将使其毫无价值,因此他们将所有的努力都投入到了以一种污染数据集的方式进行的犹豫不决的删除上。
自定义搜索控制面板底部有一个选项:"要搜索的网站",您可以选择"搜索整个网站,但强调包含的网站"
- 它还对你有用吗?
- 是的,它仍然有效。
- 谷歌强迫你在升级到付费搜索时关闭这个选项。免费的搜索限制为100次。
- @易舒,为什么页面是https://support.google.com/customsearch/answer/141877?hl=en表示"你不能将谷歌网站搜索配置为搜索整个网站"?
- @派瑟,我不知道。也许政策改变了?
Faroo有一个免费的网络搜索API
- 他们的结果有限,但一个良好的起点。
- @杰克,以前没听说过。他们从哪里得到搜索结果?
- Faroo可能会破坏交易,因为您的API密钥仅限于注册期间指定的IP地址。
- 这些人还在运作吗?我请求了API密钥,但什么也没听到。
我刚从普通的爬行中发现这个。
http://www.commoncrawl.org网站/
可能是我们都在寻找的答案!!
- 它的指数有限,每年刷新一次。最后它还是相当昂贵的,因为你必须插入AmazonS3。
- @基劳米勒资产阶级,贵吗?我不认为那是真的。这是一个非营利组织。整个102 TB的数据是免费下载的。
- 费用是连接到您可以访问的AWS。如果你是一名学生,你有资格获得他们的免费等级,但仍然可能有转移成本等;如果你不在免费等级,有运行成本。
- 看起来普通的爬行现在每月更新一次
文件上方有一条注释:
Note: The Google Web Search API has
been officially deprecated as of
November 1, 2010. It will continue to
work as per our deprecation policy,
but the number of requests you may
make per day will be limited.
Therefore, we encourage you to move to
the new Custom Search API.
反预测政策说他们将继续运行API 3年。因此,如果您已经有了一个使用旧API的应用程序,那么您就不必急于改变现状。如果您正在编写新的应用程序,请使用自定义搜索API。关于如何在Python中实现这一点,请参阅这里的答案,但是对于任何语言来说,这个想法都是相同的。
- 这不是免费的……"每1000次查询5美元"…非常不自由!
- 由于三年过去了,2014/09/29年过去了,这个答案现在已经过时了。
- CustomerSearchAPI不在所有网站中-它用于用户网站
有一个免费的Java API称为jFieldWebStk,它使用了已经提到的Faroo:http://www.ke.tu-darmstadt.de/resources/jfreewebsearch
您可以从Google自定义搜索主页(http://www.google.com/cse/)创建"无处不在"的自定义搜索引擎。在添加新引擎时,只需单击"高级"。在这里,您可以提供schema.org网站类型。Thing'是最通用的类型,它覆盖了所有的Web。
GigaBlast提供了一个廉价的Web搜索API:http://www.gigablast.com/searchfeed.html