背景:urllib*
モジュール内の他の機能とは対照的に、フック機能のサポート(下記reporthook
参照)のため、私はurllib.urlretrieve
を使用しています。プログレスバー。これはPython> = 2.6です。urllib.urlretrieveで404エラーを捕捉する方法
>>> 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エラーハンドリングをダウンロードするための最もよく知られている方法は何ですか? urllib.urlretrieve
の完全なコード
リクエストのHTTPステータスを提供していないと、おそらくstdlibのバグとみなされるはずです(ただし、以下のはるかに良いライブラリ、リクエストをチェックしてください)。 –