Python:如何显示实时爬取速度和进度条?

    当爬取一些视频或者大文件的时候,不知道需要等多久才能爬取完成,这时候就需要一个进度条和速度来告诉我们已经爬取多少了。这次主要通过python的requests库来实现这个小功能。示例链接:

        "https://dldir1.qq.com/qqtv/TencentVideo10.14.3360.0.exe"

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)+"秒")

以上就是简单实现显示下载进度和速度以及耗时的功能

你可能感兴趣的:(爬虫小功能,Python学习)