Python urllib2 URLError HTTP状态码。
我想在出现URLError异常时获取HTTP状态码:
我试过这个方法,但没有效果:
except URLError, e:
logger.warning( 'It seems like the server is down. Code:' + str(e.code) )
2 个回答
2
我不太明白你为什么会遇到这个错误。如果你在使用 urllib2
,那么这个可能会对你有帮助:
import urllib2
from urllib2 import URLError
try:
urllib2.urlopen(url)
except URLError, e:
print e.code
65
在捕获到 URLError
之后,你不应该再去检查状态码,因为这种错误可能在没有 HTTP 状态码的情况下出现,比如当你遇到连接被拒绝的错误时。
你可以使用 HTTPError
来检查与 HTTP 相关的错误,然后再用 URLError
来检查其他问题:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
当然,你可能想做一些比仅仅打印错误代码更聪明的事情,但你明白我的意思。