我试图在特定时期(例如,2012年1月7日至2012年1月14日)为特定关键字(例如Blackrock)搜索谷歌头条新闻。 我试图通过构建url然后使用urllib2来实现这一点,如下面的代码所示。如果我将构建的URL放在浏览器中,它会给我正确的结果。但是,如果我通过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
答案 0 :(得分:1)
问题在于您的用户代理,它适用于我:
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年的历史。