代码截取:
import time
start = time.time()
size = 0
# stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载
r_video = requests.get(video_url, headers=self.headers, stream=True)
chunk_size = 1024 # 每次块大小为1024
content_size = int(r_video.headers['content-length']) # 返回的response的headers中获取文件大小信息
print(f"下载{page}P,共{self.all_page}P")
print(f"{bv_name}_video.m4s ,文件大小:{format(content_size / chunk_size / 1024, '.2f')}MB")
with open(f'{path}_video.m4s', 'wb') as f:
for data in r_video.iter_content(chunk_size=chunk_size): # 每次只获取一个chunk_size大小
f.write(data) # 每次只写入data大小
size = len(data) + size
# 'r'每次重新从开始输出,end = ""是不换行
print('\r' + "进度:" + int(
size / content_size * 30) * "█" + f" 【{format(size / chunk_size / 1024, '.2f')}MB】 【{format(size / content_size, '.2%')}】",
end="")
end = time.time()
print(" 总耗时:%.2f秒" % (end - start))