Python - 获取Google搜索结果

时间:2016-06-10 18:13:29

标签: python


我的目标是创建一个小的sript,找到谷歌搜索的所有结果,但在“原始” 我不会说英语,所以我更愿意给你一个例子来告诉你我想要的东西:
我输入:elephant
脚本返回
www.elephant.com
www.bluelephant.com
www.ebay.com/elephant
.....

我在想urllib.request,但返回值不适用于那个! 我发现了一些教程,但根本不符合我的愿望! 就像我告诉你我的目标是有一个.txt文件作为输出女巫包含所有与我的查询匹配的网站! 谢谢大家

4 个答案:

答案 0 :(得分:3)

一种简单的方法是发出google搜索请求,然后解析html结果。你可以使用一些Python库,比如我们的Beautiful Soup来轻松解析html内容,最后得到你需要的url链接。

答案 1 :(得分:1)

这些似乎经常发生变化,所以希望这个答案在一段时间内仍然有用......

首先,您需要访问其网站或按照此处提供的说明https://developers.google.com/custom-search/docs/tutorial/creatingcse创建Google自定义搜索。

这将为您提供

  • 自定义搜索引擎ID
  • API密钥

使用该服务所需的凭据。

在你的python脚本中,你需要导入以下包:

from googleapiclient.discovery import build

这将使您能够创建构建对象:

service = build("customsearch", developerKey=my_api_key)

根据文档,这构建了一个与API交互的资源。

如果您想要返回搜索结果,请使用execute()的{​​{1}}方法致电service

cse().list()

返回搜索结果列表,其中每个结果都是字典对象。可以使用“链接”键访问第i个结果的URL:

res = service.cse().list(q=my_search_keyword, cx=my_cse_id, **kwargs).execute()

请注意,您只能在一次调用中返回10个结果,因此请使用ithresult = res[i]['link'] 中的start关键字参数,并考虑将此调用嵌入循环中,以便一次生成多个链接

您应该能够找到大量有关将搜索结果保存到文本文件的答案。

N.B。还有一件事让我感到困惑 - 大概是你想要搜索整个网络,而不仅仅是一个网站。但在创建CSE时,系统会要求您指定要搜索的单个站点或站点列表。别担心,只要输入任何旧东西,您可以稍后删除它。甚至谷歌都支持这个黑客:

  

转换搜索引擎以搜索整个网络:在自定义搜索上   主页,单击所需的搜索引擎。单击“设置”,然后   单击“基本”选项卡。选择搜索整个网络但强调   包括网站。在“要搜索的站点”部分中,删除您的站点   在初始设置过程中输入。

答案 2 :(得分:1)

我只是在“第9维”答案中加2分。

  1. 使用this guide查找自定义搜索引擎ID
  2. 应在代码的第二行进行小修改:如下所示,“version”应作为参数添加
  3. service = build('customsearch','v1',developerKey= my_api_key)

答案 3 :(得分:0)

您有2个选项 - 使用API​​或像浏览器一样发出请求,然后解析HTML。

  • 第一个选项是tricky来设置并且是有限的 - 每天100个免费查询,然后是5美元的1000个。

  • 第二个选项更容易,但它违反了Google的ToS。