Python请求库仅在Linux上抛出badstatusline异常

时间:2013-07-09 15:21:11

标签: python

对于我要提取的其中一个网站,我得到'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
  5. 这是我的代码:

    import requests
    url = 'https://somewebsite.com'
    
    try:
        r = requests.get(url, verify=False)
    except Exception, e:
        print e
    

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

    我尝试过wget,但收到以下回复:

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

    EDIT1:

    例外:     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: curl on linux报告“来自服务器的空回复” Windows上的curl报告相同 - “来自服务器的空回复”

1 个答案:

答案 0 :(得分:-2)

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