当爬取一些视频或者大文件的时候,不知道需要等多久才能爬取完成,这时候就需要一个进度条和速度来告诉我们已经爬取多少了。这次主要通过python的requests库来实现这个小功能。示例链接:
"/qqtv/TencentVideo10.14.3360.0.exe"
import requests#引入requests库import time#引入time,计算下载时间start = time.time()size = 0path = "C:/Users/23504/Desktop/Test.exe"#路径url = "/qqtv/TencentVideo10.14.3360.0.exe"response = requests.get(url,stream = True)#stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载chunk_size = 1024#每次块大小为1024content_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)+"秒")
以上就是简单实现显示下载进度和速度以及耗时的功能