Ответ 1
Вы не должны проверять код состояния после ловли URLError
, так как это исключение может быть поднято в ситуациях, когда нет кода состояния HTTP, например, когда вы получаете отказ от отказа в подключении.
Используйте HTTPError
для проверки ошибок HTTP, а затем используйте URLError
для проверки других проблем:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
print e.code
except urllib2.URLError, e:
print e.args
Конечно, вы, вероятно, захотите сделать что-то более умное, чем просто печатать коды ошибок, но вы получите эту идею.