在特定日期范围内搜索特定网站中的一组关键字非常简单 - >在谷歌搜索框中输入: desired-kewords网站:所需网站 然后从“工具”菜单中选择日期范围。例如 在2011年1月1日至2013年12月31日期间,www.cnn.com上的“阿拉伯之春”搜索词:
正如您在第二张图片中看到的,大约有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客户端以编程方式获得相同的功能。 我定义了一个自定义搜索引擎:
然后尝试了我在网络/堆栈上发现的不同建议:
this is a related无法回答的问题。
这篇关于Date range search using Google Custom Search API的帖子提到了here,并建议使用'sort'参数来帮助(sort ='date:r:yyyymmdd:yyyymmdd')。不起作用:“totalResults”是“44900”
This post建议使用日期限制字段,该字段不起作用。
嘛!任何工作方案?
答案 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或其他库来抓取它。