为什么python请求抛出此BadStatusLine异常

Oul*_*der 3 python exception python-requests

在python中,如果我导入请求并执行:

t = requests.get("http://www.azlyrics.com/u/urban.html")
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

raise BadStatusLine(line)
http.client.BadStatusLine: ''
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?

ale*_*cxe 7

这种错误可能有不同的 原因 ,但在这种特殊情况下,这看起来像一个简单的网络抓取检测 - 它可以通过提供假装是真正的浏览器的User-Agent标头来解决:

In [2]: requests.get("http://www.azlyrics.com/u/urban.html")
...
ConnectionError: ('Connection aborted.', BadStatusLine("''",))

In [3]: requests.get("http://www.azlyrics.com/u/urban.html", headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36'})
Out[3]: <Response [200]>
Run Code Online (Sandbox Code Playgroud)