这段代码是使用tqdm
库创建一个进度条来监视视频文件的下载过程。进度条的总长度被设置为261669763
字节。
import requests
from tqdm import tqdm
session = requests.Session()
# 下载路径
file_url = "https://f.video.weibocdn.com/00497ZGZgx07LFXmitba0104120hHWg30E070.mp4?label=mp4_720p&template=1280x720.25.0&trans_finger=775cb0ab963a74099cf9f840cd1987f1&media_id=4623023358279700&tp=8x8A3El:YTkl0eM8&us=0&ori=1&bf=3&ot=h&lp=yODMkOxvUyYIS9MUSBJLo&ps=mZ6WB&uid=8zomq6&ab=11243-g2,1493-g0,1192-g0,1191-g0,1258-g0&Expires=1697873377&ssig=GksSLis26J&KID=unistore,video"
# stream=True 参数表示启用流式传输,使得响应内容不会一次性加载到内存中,
# 而是随着数据的接收逐步返回,这对于处理大文件或需要实时处理的情况非常有用。
response = session.get(file_url, stream=True)
# 文件总大小
total_size = 261669763
# 进度条
progress_bar = tqdm(total= total_size, unit='B', unit_scale=True)
# 进度条重置
progress_bar.reset()
data = 0
# 这里可以使用 response 对象来处理获取到的数据
# 例如,将数据写入文件
with open('kevin.mp4', 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
data += len(chunk)
progress_bar.update(len(chunk))
# 判断下载完大小是否相同
print(data == total_size)
progress_bar.close()