1

我正在尝试在给定时期(例如 2012 年 1 月 7 日至 2012 年 1 月 14 日)为给定关键字(例如 Blackrock)抓取 Google 头条新闻。我试图通过构造 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
4

1 回答 1

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')

您正在使用大约 6 年历史的 Firefox 3 用户代理。

于 2014-12-08T23:31:49.560 回答