我正在尝试抓取给定关键字(例如 Blackrock)在给定时间段(例如 2012 年 1 月 7 日至 2012 年 1 月 14 日)的 Google 头条新闻。 我试图通过构造 url 然后使用 urllib2 来实现此目的,如下面的代码所示。如果我将构建的网址放入浏览器中,它会给出正确的结果。然而,如果我通过 python 使用它,我会得到当前时期正确关键字的新闻结果。 这是代码。有人可以告诉我我做错了什么以及如何纠正它吗?
import urllib
import urllib2
import json
from bs4 import BeautifulSoup
import requests
url = 'https://www.google.com/search?q=Blackrock&hl=en&gl=uk&authuser=0&source=lnt&tbs=cdr%3A1%2Ccd_min%3A7%2F1%2F2012%2Ccd_max%3A14%2F1%2F2012&tbm=nws'
req = urllib2.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.3 Gecko/2008092417 Firefox/3.0.3')
response = urllib2.urlopen(req)
html = response.read()
soup = BeautifulSoup(html)
text = soup.text
start = text.index('000 results')+11
end = text.index('NextThe selection')
text = text[start:end]
print text
最佳答案
问题出在你的用户代理上,它对我有用:
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36')
您正在使用 Firefox 3 的用户代理,该代理已有大约 6 年的历史。
关于python - 无法准确抓取google新闻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360315/