Python urllib2 URLError HTTP状态代码。

时间:2010-08-12 07:51:05

标签: python exception urllib2

我想在引发URLError异常后抓取HTTP状态代码:

我尝试了这个但没有帮助:

except URLError, e:
    logger.warning( 'It seems like the server is down. Code:' + str(e.code) )

2 个答案:

答案 0 :(得分:62)

捕获URLError后不应检查状态代码,因为在没有HTTP状态代码的情况下可以引发该异常,例如当您收到连接拒绝错误时。

使用HTTPError检查HTTP特定错误,然后使用URLError检查其他问题:

try:
    urllib2.urlopen(url)
except urllib2.HTTPError, e:
    print e.code
except urllib2.URLError, e:
    print e.args

当然,你可能想要做一些比打印错误代码更聪明的事情,但你明白了。

答案 1 :(得分:2)

不确定为什么会收到此错误。如果您使用urllib2,这应该会有所帮助:

import urllib2
from urllib2 import URLError

try:
    urllib2.urlopen(url)
except URLError, e:
    print e.code