import requests # 网络请求模块
import time # 时间模块
import random # 随机模块
import os # 操作系统模块
import re # 正则表达式
from fake_useragent import UserAgent # 导入伪造头部信息的模块
'''
下载批量下载视频
打印视频下载的实时进度
'''
# 哔哩哔哩小视频json地址
json_url = 'http://api.vc.bilibili.com/board/v1/ranking/top?page_size=10&next_offset={page}1&tag=%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&platform=pc'
class Crawl():
def get_json(self,json_url):
headers = {'User-Agent': UserAgent().random} # 创建随机生成的头部信息
response = requests.get(json_url, headers=headers) # 设置随机生成的头部信息
# 判断请求是否成功
if response.status_code == 200:
return response.json() # 返回json信息
else:
print('获取json信息的请求没有成功!')
#下载视频
def download_video(self,video_url,titlename):
size = 0 # 记录叠加每次写入大小的变量
headers = {'User-Agent':UserAgent().random} #创建随机生成的头部信息
# 下载视频的网络请求
response = requests.get(video_url, headers=headers, stream=True)
chunk_size = 1024 # 单次请求最大值
content_size = int(response.headers['content-length']) # 视频内容的总大小
if not os.path.exists('video'): # 如果video目录不存在时
os.mkdir('video') # 创建该目录
if response.status_code == 200: # 判断请求是否成功
if os.path.exists('video'):
print('视频文件大小:%0.2fMB' % (content_size / chunk_size / 1024)) # 换算单位,并打印文件大小
with open('video/'+titlename+'.mp4', 'wb')as f: # 将视频写入指定位置
for data in response.iter_content(chunk_size=chunk_size): # 循环写入,实现一段一段的写
f.write(data) # 写入视频文件
f.flush() # 刷新缓存
size += len(data) # 叠加每次写入的大小
# 打印下载进度
print('\r 文件下载进度:%d%%(%0.2fMB/%0.2fMB)' % (float(size / content_size * 100), (size/ chunk_size / 1024), (content_size / chunk_size / 1024)), end=" ")
else:
print('视频下载失败!')
if __name__ == '__main__':
ranking = 0 # 排名变量
c = Crawl()
for page in range(0,10):
json = c.get_json(json_url.format(page=page)) # 获取返回的json数据
infos = json['data']['items'] # 信息集
for info in infos: # 遍历信息
ranking += 1 # 叠加排名
print('\n正在下载排名第', ranking, '的视频')
title = info['item']['description'] # 视频标题
# 只保留标题中英文、数字与汉字,其它符号会影响写入文件
comp = re.compile('[^A-Z^a-z^0-9^\u4e00-\u9fa5]')
title = comp.sub('', title) # 将不符合条件的符号替换为空
video_url = info['item']['video_playurl'] # 视频地址
print(title,video_url)
c.download_video(video_url, title) # 下载视频,视频标题作为视频的名字
time.sleep(random.randint(3, 6)) # 随机产生获取json请求的间隔时间
没有合适的资源?快使用搜索试试~ 我知道了~
网络爬虫-批量爬取B站视频-python练习源码.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共5个文件
py:5个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 175 浏览量
2024-07-06
10:13:44
上传
评论
收藏 12KB ZIP 举报
温馨提示
批量爬取B站小视频爬取B站小视频之获取动态请求数据….爬取B站小视频之随机生成浏览器的头部信息.爬取B站小视频之获取要下载视频的大小….…爬取B站小视频之实时打印文件下载进度……网络爬虫-批量爬取B站视频-python练习源码
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 5 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/683d384c27f34b1688b870edbc583875_zxcv321zxcv.jpg!1)
ordinary90
- 粉丝: 802
- 资源: 247
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 2SK2717-VB一款N-Channel沟道TO220F的MOSFET晶体管参数介绍与应用说明
- 单片机时钟和GPIO口
- 深入解析Linux核心指令:全面掌握必备命令和应用场景,快速提升系统管理技能.docx
- Huawei AR6120-S-V300R023SPH121
- HFish跨平台蜜罐平台 v2.2.0打包下载
- maxio主控 MAS0902A-B2C 的开卡软件
- jspm艺诚美业管理系统
- 1997-2023年各省粮食产量数据(无缺失)
- 无中介租房小程序-毕业设计,基于微信小程序+Python+Django+Vue+MySql开发,源码+数据库+毕业论文+视频演示
- 2SK2713-VB一款N-Channel沟道TO220F的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)