错误:Ubuntu上的httplib.py in_read_status提高BadStatusLine(line)BadStatusLine

时间:2018-07-04 12:01:17

标签: python selenium http ubuntu web-scraping

我正在python中使用Selenium抓取网站,当我在Windows上运行相同的脚本时,我得到了预期的结果,但是在ubuntu 16.04中,当我运行相同的脚本时,它会引发错误:

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

谁能告诉我为什么会引发此错误?

谢谢:)

1 个答案:

答案 0 :(得分:1)

此错误消息...

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

...表示服务器在响应时发出了我们无法理解的HTTP状态代码,从而引发了 BadStatusLine


例外httplib.BadStatusLine Python2.x / Python3.x

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


原因和解决方案

看到 httplib.BadStatusLine 异常可能有很多原因。根据{{​​3}},一些潜在的原因和解决方案是:

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