Справочная информация: я использую 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?