我想抓住的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