【问题标题】:Error: httplib.py in_read_status raise BadStatusLine(line) BadStatusLine on ubuntu错误:httplib.py in_read_status raise BadStatusLine(line) BadStatusLine on ubuntu
【发布时间】:2018-12-12 20:50:30
【问题描述】:

我在 python 中使用 selenium 抓取网站,当我在 Windows 上运行相同的脚本时,我得到了想要的结果,但在 ubuntu 16.04 中,当我运行相同的脚本时,它会抛出错误:

File "/usr/lib/python2.7/httplib.py", line 402, in_read_status
  raise BadStatusLine(line)
BadStatusLine: ''

谁能告诉我为什么会出现这个错误?

谢谢:)

【问题讨论】:

    标签: python selenium http ubuntu web-scraping


    【解决方案1】:

    此错误消息...

    File "/usr/lib/python2.7/httplib.py", line 402, in_read_status raise BadStatusLine(line) BadStatusLine
    

    ...暗示 BadStatusLine 在服务器响应我们不理解的 HTTP 状态代码时引发。


    httplib.BadStatusLine

    exception httplib.BadStatusLinePython2.x - httplib / Python3.x - http.client 模块中定义,是HTTPException 的子类,如果服务器以我们不理解的 HTTP 状态代码响应,则会引发该子类。


    原因及解决办法

    看到 httplib.BadStatusLine 异常的原因可能有很多。根据Why am I getting this error in python ? (httplib),一些可能的原因和解决方案是:

    • 您可能正在尝试使用http:// 而不是https://
    • URL 字符串可能包含尾随换行符。因此,请确保您的 URL 中没有任何前导或尾随特殊字符。
    • Web 服务器 可能已关闭并且没有响应
    • 服务器可能在发送有效响应之前关闭连接
    • http header 中存在Content-Length 也会产生此异常。
    • 如果两个请求之间的时间间隔大于他配置的时间Keep-Alive timeout=n
    • 一个简单的解决方案是在发送每个请求之前通过 conn.connect() 建立一个新连接。

    【讨论】:

    • 几乎所有这些“原因”都不会导致BadStatusLine 异常。
    猜你喜欢
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 2013-06-19
    • 2019-08-26
    • 1970-01-01
    • 2023-03-30
    • 2016-01-15
    • 2014-12-26
    相关资源
    最近更新 更多