赞
踩
当爬取一些视频或者大文件的时候,不知道需要等多久才能爬取完成,这时候就需要一个进度条和速度来告诉我们已经爬取多少了。这次主要通过python的requests库来实现这个小功能。示例链接:
- import requests#引入requests库
- import time#引入time,计算下载时间
- start = time.time()
- size = 0
- path = "C:/Users/23504/Desktop/Test.exe"#路径
- url = "https://dldir1.qq.com/qqtv/TencentVideo10.14.3360.0.exe"
- response = requests.get(url,stream = True)#stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载
- chunk_size = 1024#每次块大小为1024
- content_size = int(response.headers['content-length'])#返回的response的headers中获取文件大小信息
- print("文件大小:"+str(round(float(content_size/chunk_size/1024),4))+"[MB]")
- with open(path,'wb') as file:
- for data in response.iter_content(chunk_size=chunk_size):#每次只获取一个chunk_size大小
- file.write(data)#每次只写入data大小
- size = len(data)+size
- #'r'每次重新从开始输出,end = ""是不换行
- print('\r'+"已经下载:"+int(size/content_size*100)*"█"+" 【"+str(round(size/chunk_size/1024,2))+"MB】"+"【"+str(round(float(size/content_size)*100,2))+"%"+"】",end="")
- end = time.time()
- print("总耗时:"+str(end-start)+"秒")
以上就是简单实现显示下载进度和速度以及耗时的功能
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。