Как отловить ошибку 404 в urllib.urlretrieve

Фон: я используюurllib.urlretrieve, в отличие от любой другой функции вurllib* модули, из-за поддержки функции ловушки (см.reporthook ниже) .. который используется для отображения текстового индикатора выполнения. Это Python>= 2,6.

>>> urllib.urlretrieve(url[, filename[, reporthook[, data]]])

Тем не мение,urlretrieve настолько глуп, что не оставляет возможности определить состояние HTTP-запроса (например: 404 или 200?).

>>> fn, h = urllib.urlretrieve('http://google.com/foo/bar')
>>> h.items() 
[('date', 'Thu, 20 Aug 2009 20:07:40 GMT'),
 ('expires', '-1'),
 ('content-type', 'text/html; charset=ISO-8859-1'),
 ('server', 'gws'),
 ('cache-control', 'private, max-age=0')]
>>> h.status
''
>>>

Каков наиболее известный способ загрузки удаленного файла HTTP с поддержкой в виде хуков (для отображения индикатора выполнения) и приличной обработкой ошибок HTTP?

Ответы на вопрос(3)

Ваш ответ на вопрос