import os
import time
import requests
def downloader(url,path,title):
if not os.path.exists(path):
os.makedirs(path)
file_path = path + "/" + title
start = time.time()
size = 0
res = requests.get(url, stream=True)
chunk_size = 1024 # 每次下载数据大小
content_size = int(res.headers["content-length"]) # 总大小
try:
if res.status_code == 200:
print('[%s 文件大小]: %0.2f MB' % (title, content_size / chunk_size / 1024))
with open(file_path, 'wb') as f:
for data in res.iter_content(chunk_size=chunk_size):
f.write(data)
size += len(data) # 已下载文件大小
# \r 指定第一个字符开始,搭配end属性完成覆盖进度条
print(
'\r' + '[下载进度]: %s%.2f%%' % ('>' * int(size * 50 / content_size), float(size / content_size * 100)),
end='')
end = time.time()
print('\n' + "全部下载完成!用时%s.2f秒" % (end - start))
except Exception as e:
print("下载出错:",e)
def main():
url = "http://xxxxxxx.html"
path = os.getcwd() + '/文件夹名字'
title = "文件名字.png" # 可通过循环获取名字或者修改名字
downloader(url,path,title)
if __name__ == '__main__':
main()