背景:我正在使用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 文件的最知名方法是什么?