web-dev-qa-db-ja.com

Python urllib2 URLError HTTPステータスコード。

URLError例外が発生したら、HTTPステータスコードを取得します。

私はこれを試しましたが、助けにはなりませんでした:

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

URLErrorをキャッチした後はステータスコードを確認しないでください。たとえば、接続拒否エラーが発生した場合など、HTTPステータスコードがない場合に例外が発生する可能性があるためです。

HTTPErrorを使用してHTTP固有のエラーをチェックし、次にURLErrorを使用して他の問題をチェックします。

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

もちろん、エラーコードを印刷するだけでなく、もっと賢いことをしたいと思うかもしれませんが、アイデアは得られます。

62
Pär Wieslander

このエラーが発生する理由がわかりません。 urllib2を使用している場合、これが役立ちます。

import urllib2
from urllib2 import URLError

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