如何爬取B站任一个up的投稿视频清单
requests.get直接请求https://space.bilibili.com/{Uid}/video时,页面是通过js渲染过的,因而获取的网页html.text是一个空壳,无法通过xpath,re等得到标题、播放量等元素信息
通过selenium也可以获取,但是爬取速度太慢
通过requests_html库(基于pyppeteer库)渲染页面获取真实html,其原理是基于Chromium内核
解决
通过请求下列url获取的text为页面的视频信息
https://api.bilibili.com/x/space/wbi/arc/search?mid={Uid}&ps=30&tid=0&pn=1&keyword=&order=pubdate&order_avoided=true
利用json提取信息
import json
json_data = json.loads(res.text)
# 获取视频投稿总数
tid = json_data['data']['list']['tlist']
tid_key, tid_value = zip(*tid.items())
tid_value[0]['count'] # 该up的投稿视频总数
# 获取视频基本信息
print(json_data['data']['list']['vlist'][0]['author']) # 作者
print(json_data['data']['list']['vlist'][0]['title']) # 标题
print(json_data['data']['list']['vlist'][0]['play']) # 播放量
print(json_data['data']['list']['vlist'][0]['comment']) # 评论数
print(json_data['data']['list']['vlist'][0]['length']) # 视频时长 mm:ss
print(json_data['data']['list']['vlist'][0]['description']) # 描述
如何找到这个链接的
F12
检索任意一个视频标题
找到相应内容
在headers里找到请求的html
经过测试,url有些参数可以去掉,从而得到一个通用的url

温馨提示:
欢迎您来到小站
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;
3.作者投稿可能会经我们编辑修改或补充;
4.网页广告仅为维持服务器 请谅解;
5.QQ:1103606138 无其它联系方式。











