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

可以在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)

最佳答案

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

09-27 08:27