urllib2 对某个网址抛出错误,但在浏览器中正常打开

0 投票
1 回答
1805 浏览
提问于 2025-04-16 13:16

我想通过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)

撰写回答