urllib2 对某个网址抛出错误,但在浏览器中正常打开
我想通过Python打开一个网址,代码是这样的:
import urllib2
f = urllib2.urlopen('http://www.futurebazaar.com/Search/laptop')
但是它出现了以下错误:
文件 "C:\Python26\lib\urllib2.py",第1134行,在 do_open 中 r = h.getresponse() 文件 "C:\Python26\lib\httplib.py",第986行,在 getresponse 中 response.begin() 文件 "C:\Python26\lib\httplib.py",第391行,在 begin 中 version, status, reason = self._read_status() 文件 "C:\Python26\lib\httplib.py",第355行,在 _read_status 中 raise BadStatusLine(line) httplib.BadStatusLine
但是这个网址在浏览器中可以正常打开。
1 个回答
5
这个网站出问题了。如果没有提供可选的“Accept”头信息,网站就会直接关闭连接,不给任何回应;这样的行为是不对的。
解决办法:
import urllib2
req = urllib2.Request('http://www.futurebazaar.com/Search/laptop')
req.add_header('Accept', '*/*')
f = urllib2.urlopen(req)