0

'badstatusline'对于我试图获取的网站之一,我得到了例外。问题仅在 Linux 上显示,但在 Windows 上一切正常。测试:

  1. Windows 7 64 位,Python 2.6.x 32 位 -> 确定
  2. Windows XP SP3,Python 2.7.3 -> 好的
  3. Xubuntu 12.10,Python 2.7.3 -> badstatusline
  4. Ubuntu 12.04 LTS、Python 2.7.3 -> badstatusline

这是我的代码:

import requests
url = 'https://somewebsite.com'

try:
    r = requests.get(url, verify=False)
except Exception, e:
    print e

我尝试在请求中添加自定义标头,但没有帮助。可能是什么问题呢?

我曾尝试使用 wget,但收到以下回复:

已发送 HTTP 请求,等待响应... 未收到数据。

编辑1:

例外:HTTPSConnectionPool(host='somesite.com',port=443):最大重试次数超出 url:由类 'httplib.BadStatusLine':'')

这是来自 httplib:

    def _read_status(self):
    # Initialize with Simple-Response defaults
    line = self.fp.readline()
    if self.debuglevel > 0:
        print "reply:", repr(line)
    if not line:
        # Presumably, the server closed the connection before
        # sending a valid response.
        raise BadStatusLine(line)

我可以绕过这个,但这不是解决方案。解决方案是,如果我的请求可以更像 FF 并且无论如何都可以访问数据。再一次,它在 Win7 和 Win XP 上就像魅力一样。

Edit2: Linux 上的 curl 报告“来自服务器的空回复” Windows 上的 curl 报告相同 - “来自服务器的空回复”

4

1 回答 1

-2

您是否尝试过验证您收到的 HTML 是否有效?如果没有,我会尝试打印出收到的请求并确保它符合标准

于 2013-07-09T16:11:13.910 回答