我遇到一个奇怪的错误,我似乎无法找到解决方案。
每次我点击这段代码时都不会发生这个错误,也不会在循环中进行相同的迭代(它发生在循环中)。如果我运行足够,它似乎没有遇到错误,程序执行成功。无论如何,我仍然想知道为什么会发生这种情况。
这是我的错误,版本,跟踪等:http://dpaste.com/681658/
似乎在我的代码中出现以下行:
page = urllib2.urlopen(url)
其中url显然是一个URL。
我的代码中确实有import urllib2
。
答案 0 :(得分:34)
当您调用urllib2.urlopen(url)
并且远程服务器使用python无法理解的状态代码进行响应时,会引发BadStatusLine
异常。
假设您不控制url
,则无法阻止这种情况发生。您所能做的就是捕获异常,并优雅地管理它。
from httplib import BadStatusLine
try:
page = urllib2.urlopen(url)
# do something with page
except BadStatusLine:
print "could not fetch %s" % url
答案 1 :(得分:7)
这与Django没有任何关系,它是urllib2引发的异常,它在获取你的url后无法解析响应。它可能是一个网络问题,一个格式错误的响应...一些服务器/应用程序随机抛出这种错误。如果你不控制这个URL返回的内容,你就会留下捕获异常,调试哪些URL导致问题并尝试识别模式。
答案 2 :(得分:7)
其他用户的解释是正确和好的,但在实践中,您可能会觉得这很有用:
根据我的经验,这通常发生在您向url参数发送不带引号的值时,例如包含空格或其他需要引号或url编码的字符的值。