欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > python爬虫加入进度条

python爬虫加入进度条

2024/10/24 17:18:42 来源:https://blog.csdn.net/qq_62943420/article/details/140282962  浏览:    关键词:python爬虫加入进度条

安装tqdm和requests库

pip install tqdm -i  https://pypi.tuna.tsinghua.edu.cn/simplepip install requests -i  https://pypi.tuna.tsinghua.edu.cn/simple

带进度条下载

import time  # 引入time模块,用于处理时间相关的功能
from tqdm import *  # 从tqdm包中引入所有功能,tqdm用于在循环中显示进度条
import requests  # 引入requests模块,用于发起网络请求# 设置请求头信息,模拟浏览器访问
headers = {"accept": "*/*",  # 接受任何类型的返回数据"accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",  # 设置接受的语言类型和优先级"cache-control": "no-cache",  # 通知服务器不使用缓存,获取最新的数据"pragma": "no-cache",  # 与cache-control类似,某些服务器可能会用到"priority": "i",  # 请求的优先级"range": "bytes=2523136-",  # 请求部分内容,从指定字节开始到结束"referer": "https://v.jstv.com/",  # 通知服务器该请求是从哪个页面来的"sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Microsoft Edge\";v=\"126\"",  # 安全相关的客户端信息"sec-ch-ua-mobile": "?0",  # 是否为移动设备"sec-ch-ua-platform": "\"Windows\"",  # 客户端平台"sec-fetch-dest": "video",  # 请求的目的地,这里是视频"sec-fetch-mode": "no-cors",  # 请求模式,不进行跨域资源共享(CORS)预检请求"sec-fetch-site": "same-site",  # 请求的站点,这里是同站请求"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"  # 用户代理,模拟浏览器信息
}# 视频文件的URL
url = "https://vod.v.jstv.com/2024/07/08/JSTV_JSGGNEW_1720439020421_QW5qn10_1879.mp4"# 发起网络请求,获取视频文件流,并设置请求头
response = requests.get(url, stream=True, headers=headers)# 获取视频文件的大小,并转换为MB或GB单位显示
contant_size = int(response.headers['content-length']) / 1024 / 1000  # 从响应头中获取内容长度,并转换为MB
if contant_size > 1000:print("视频大小", '{:.2f}'.format(contant_size / 1000), "gb")  # 如果大于1000MB,则显示为GB
elif contant_size > 1:print("视频大小", '{:.2f}'.format(contant_size), "mb")  # 如果大于1MB,则显示为MB
elif contant_size < 1:print("视频大小", '{:.2f}'.format(contant_size * 1000), "kb")  # 如果小于1MB,则显示为KB# 打开一个名为"测试.mp4"的文件,以二进制写模式
with open(r"测试.mp4", "wb") as file:# 使用tqdm进度条显示下载进度for data in tqdm(iterable=response.iter_content(1024 * 1000),  # 每次读取1024KB数据total=contant_size,  # 进度条的总长度为文件大小postfix='带带爬虫',  # 进度条后缀unit='mb',  # 显示单位为MBdesc="视频下载"):  # 进度条前缀描述file.write(data)  # 将读取到的数据写入文件

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com