我想抓住的HTTP状态代码,一旦它提出了一个URLError例外:Python urllib2 URLError HTTP状态码。
我试过,但并没有帮助:
except URLError, e:
logger.warning('It seems like the server is down. Code:' + str(e.code))
我想抓住的HTTP状态代码,一旦它提出了一个URLError例外:Python urllib2 URLError HTTP状态码。
我试过,但并没有帮助:
except URLError, e:
logger.warning('It seems like the server is down. Code:' + str(e.code))
你不应该追赶URLError
后检查状态代码,因为该异常可以在有可用的HTTP状态代码的情况下被提出,例如,当你”重新获得连接拒绝错误。
使用HTTPError
检查HTTP特定的错误,然后用URLError
检查其他问题:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
当然,你可能会想要做的事不仅仅是打印错误代码更聪明,但你明白了。
为了100%安全,您可能还需要检查ValueError,因为当输入的URL无效或为空时,urllib2.urlopen将抛出ValueError异常。 – zer0c00l 2011-07-25 02:01:26
不知道为什么你收到此错误。如果您正在使用urllib2
这应该帮助:
import urllib2
from urllib2 import URLError
try:
urllib2.urlopen(url)
except URLError, e:
print e.code
'URLError'对象没有属性'code'。 最好使用e.reason。 – joctee 2012-10-16 09:53:44
奇怪。你可以粘贴你用来打开网址的代码吗? – 2010-08-12 08:07:09