1

我正在尝试从谷歌新闻搜索中获取特定日期的结果数量。在浏览器中这很容易 - 进行谷歌搜索,单击“新闻”选项卡,单击“工具”,然后将时间段更改为您想要的日期,然后再次单击“工具”,您可以看到有多少它发现的故事。

开始日期和结束日期可以在 URL 中看到。例如,这是过去一周对“堆栈溢出”的搜索 - https://www.google.com/search?q=stack+overflow&source=lnt&tbs=cdr%3A1%2Ccd_min%3A1%2F3%2F2018%2Ccd_max% 3A1%2F10%2F2018&tbm=nws

问题是当我尝试请求其中一个 URL 时,它会为我提供它的当前结果并忽略我指定的日期范围。我可以在浏览器中更改这些参数,结果会按预期更改,它只是无法以编程方式工作。

我在 python 和 C# 中尝试了几种方法,总是得到相同的结果。
例如 -

import requests
response = requests.get('https://www.google.com/search?q=stack+overflow&source=lnt&tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2018%2Ccd_max%3A1%2F10%2F2018&tbm=nws')
print(response.content)
4

1 回答 1

1

我终于找到了一种使用无头网络浏览器和 Selenium 的工作方法。我想这与无法通过简单的请求获得 java 创造的魔力有关。不过,我仍然有兴趣听到解释或其他方式来做到这一点。

于 2018-01-11T21:07:58.847 回答