利用python爬取B站视频代码
时间: 2023-08-13 07:08:38 浏览: 157
以下是基于Python的爬取B站视频的代码示例:
```python
import requests
import json
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 设置UP主的UID,这里以B站UP主“蔡徐坤工作室”为例
uid = 10170497
# 设置B站API接口地址,并拼接参数
url = 'https://api.bilibili.com/x/space/arc/search?mid={}&ps=30&tid=0&pn={}&keyword=&order=pubdate&jsonp=jsonp'.format(
uid, 1)
# 发送请求
res = requests.get(url, headers=headers)
# 解析JSON数据
json_data = json.loads(res.text)
# 获取视频总数
video_num = json_data['data']['page']['count']
# 计算视频页数
if (video_num % 30 == 0):
page_num = video_num // 30
else:
page_num = video_num // 30 + 1
# 遍历所有视频页
for page in range(1, page_num + 1):
# 拼接API接口地址
url = 'https://api.bilibili.com/x/space/arc/search?mid={}&ps=30&tid=0&pn={}&keyword=&order=pubdate&jsonp=jsonp'.format(
uid, page)
# 发送请求
res = requests.get(url, headers=headers)
# 解析JSON数据
json_data = json.loads(res.text)
# 遍历每一页的所有视频
for item in json_data['data']['list']['vlist']:
# 获取视频的av号
aid = item['aid']
# 获取视频的标题
title = item['title']
# 获取视频的播放量
play = item['play']
# 获取视频的弹幕数
danmaku = item['video_review']
# 获取视频的收藏数
favorite = item['favorites']
# 获取视频的封面图
pic = item['pic']
# 获取视频的创建时间
created_at = item['created']
# 输出视频信息
print('av{} - {},播放量:{},弹幕数:{},收藏数:{},创建时间:{}'.format(aid, title, play, danmaku, favorite, created_at))
# 使用you-get库来下载视频,需要提前安装you-get
# 下载视频的命令:you-get -o [保存路径] https://www.bilibili.com/video/av[av号]
# 下载视频的示例代码:
# import os
# os.system('you-get -o D:/videos https://www.bilibili.com/video/av{}'.format(aid))
```
这段代码可以爬取B站“蔡徐坤工作室”UP主的所有视频,并输出每个视频的信息。同时,也可以使用you-get库来下载视频到指定路径。需要注意的是,you-get库需要提前安装。
阅读全文