urllib.urlretrieve(url[, filename[, reporthook[, data]]])
内部会使用URLopener或者 FancyURLOpener类
url 外部或者本地url
filename 本地文件地址
reporthook 回调函数
data post数据
利用urlretrieve下载sina首页,并调用回调函数显示下载进度
回调函数的abc三个数字参数,本地url时,此函数被忽略
import urllib
def cbk(a, b, c):
'''回调函数
@a: 已经下载的数据块
@b: 数据块的大小
@c: 远程文件的大小
'''
per = 100.0 * a * b / c
if per > 100:
per = 100
print '%.2f%%' % per
url = 'http://www.sina.com.cn'
local = 'd:\\sina.html'
urllib.urlretrieve(url, local, cbk)