在Google自定义搜索API中将搜索结果限制为特定日期范围

时间:2018-07-17 09:05:23

标签: python google-custom-search

在普通Google搜索中,我可以使用“工具”将搜索结果限制在特定的日期范围内,并且运行良好。Search in Google site

但是当我在Google自定义搜索API中使用相同的限制时,所有结果都会出现,而不是特定的日期范围。

假设我希望搜索结果仅在昨天发布。尽管我在参数中指定了日期范围,但所有结果均会显示。但是,即使新闻早些发布而不是昨天发布,它也不会返回任何结果。

我看过This answare 但这不起作用。 Implementation of google custom search

如果可以将搜索结果限制在特定的日期范围内,我需要一个解决方案。我需要在api仪表板中进行任何更改吗?

2 个答案:

答案 0 :(得分:1)

只需使用Google的运算符 before: after:

答案 1 :(得分:0)

经过一些测试,这就是GOOGLE CSE的\v1\版本希望您在查询中提交的内容。将结果限制为日期范围的结构为:

result = service.cse().list({q:"feedbacklabs",sort:"date:r:20160101:20190101"}).execute()

在python中,这就是我要做的:

# this is in a class function.
from googleapiclient.discovery import build
service = build("customsearch", "v1", developerKey=API_KEY)
# you need an API_KEY for billing. Also note that I've created a 
# custom search engine with the restriction on sites to be none, so 
# essentially searches all of the Internet - but the google docs don't 
# tell you that is an option. I feed it my params like this:

params = dict(
        q=query_string,
        cx=self.search_engine_id, # use google console to build this
        exactTerms=exactTerms, # results must have this word
        linkSite=linkSite, # results must contain a link to this site
        sort=sort) # date range
result = service.cse().list(**params).execute()
# documented here: https://developers.google.com/custom-search/docs/structured_search#restrict-to-range

还请注意,这些日期限制不是很敏感。如果您想要上周或上个月的内容,那很好,但是如果将一年前和两年前的内容进行比较,则基本上可以得到相同的估计总数,四舍五入到最接近的百位。