在Google自定义搜索API

时间:2017-12-06 01:50:18

标签: python search google-api-client google-custom-search google-api-python-client

在特定日期范围内搜索特定网站中的一组关键字非常简单 - >在谷歌搜索框中输入: desired-kewords网站:所需网站 然后从“工具”菜单中选择日期范围。例如 在2011年1月1日至2013年12月31日期间,www.cnn.com上的“阿拉伯之春”搜索词: enter image description here

正如您在第二张图片中看到的,大约有773个结果! 搜索URI如下所示:

https://www.google.co.nz/search?tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2011%2Ccd_max%3A12%2F31%2F2013&ei=iDcnWoy3Jsj38QW514S4Aw&q=arab+spring+site%3Awww.cnn.com&oq=arab+spring+site%3Awww.cnn.com&gs_l=psy-ab.12...0.0.0.6996.0.0.0.0.0.0.0.0..0.0....0...1c..64.psy-ab..0.0.0....0.a4-ff19obY4 日期范围可以在tbs参数的 cd_min cd_max 中看到(无论何时使用工具菜单,都会在URI中出现)

我想使用Google的python自定义搜索API客户端以编程方式获得相同的功能。 我定义了一个自定义搜索引擎:

enter image description here

然后尝试了我在网络/堆栈上发现的不同建议:

嘛!任何工作方案?

1 个答案:

答案 0 :(得分:1)

我可能会迟到,但对于寻找解决方案的其他人来说,你可以试试这个:

from googleapiclient.discovery import build

my_api_key = "YOUR_API_KEY"
my_cse_id = "YOUR_CSE_ID"

def google_results_count(query):
    service = build("customsearch", "v1",
                    developerKey=my_api_key)
    result = service.cse().list(q=query, cx=my_cse_id, sort="date:r:20110101:20131231").execute()
    return result["searchInformation"]["totalResults"]

print google_results_count('arab spring site:www.cnn.com')

此代码将返回大约1500+个结果。

离网络搜索结果还很远,Google has an explanation why

此外,如果您尚未设置自定义搜索引擎以搜索整个网络,here's a guide on how to set it up.

P.S。如果您仍想获取网络版的结果/数据,您可以使用BeautifulSoup或其他库来抓取它。