冰冰B站视频弹幕爬取原理解析
【摘要】
上篇介绍了B站评论的获取方法和数据分析过程,本次将详细讲解B站弹幕爬取原理解析,这里讲解最简单的获取b站弹幕的方法,但也有局限性,仅仅获取了当日的弹幕,但当我再次尝试后,403了,以后再尝试改进把。以==冰冰第一条b站视频为例==为例
可以先看看这个爬取冰冰B站千条评论,看看大家说了什么
文章目录
原理概念步骤 实际案例获取视频cid...
上篇介绍了B站评论的获取方法和数据分析过程,本次将详细讲解B站弹幕爬取原理解析,这里讲解最简单的获取b站弹幕的方法,但也有局限性,仅仅获取了当日的弹幕,但当我再次尝试后,403了,以后再尝试改进把。以==冰冰第一条b站视频为例==为例
可以先看看这个爬取冰冰B站千条评论,看看大家说了什么
原理
概念
- cid : 爬取弹幕需要的id号,可以由BV号通过API接口获得
步骤
以==冰冰第一条b站视频为例==为例
- 视频链接:https://www.bilibili.com/video/BV1vy4y1i7bS,得到BV号=BV1vy4y1i7bS
- BV转cid,浏览器输入:https://api.bilibili.com/x/player/pagelist?bvid=BV1vy4y1i7bS&jsonp=jsonp,得到:cid=273039189。由cid得到当日条数小于等于1000的弹幕
- 浏览器输入https://api.bilibili.com/x/v1/dm/list.so?oid=273039189
- 该页面为XML格式,python可通过xmltodict库解析XML格式,在提取出来相应的弹幕文字,就可以进行词频分析,得到词云。
实际案例
获取视频cid
url = "https://api.bilibili.com/x/player/pagelist?bvid="+str(bvid)+"&jsonp=jsonp" response = requests.get(url) dirt=json.loads(response.text) cid=dirt['data'][0]['cid'] #cid号 已得到 nowDMget(cid) #调用爬取弹幕函数
- 1
- 2
- 3
- 4
- 5
- 6
爬取当前的弹幕函数
def nowDMget(cid): url = "https://api.bilibili.com/x/v1/dm/list.so?oid="+str(cid) response = requests.get(url) response.encoding = 'utf-8' data = parse(response.text) liat_DM=data['i']['d'] print(len( liat_DM)) for i in range(len( liat_DM)): print(liat_DM[i]['#text'])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
词云图
推荐阅读:
- 使用xpath爬取数据
- jupyter notebook使用
- BeautifulSoup爬取豆瓣电影Top250
- 一篇文章带你掌握requests模块
- Python网络爬虫基础–BeautifulSoup
此次的获取方法肯定不是最优的,抛砖引玉。希望大家可以把更好的方法打在评论,或私信给我
到这里就结束了,如果对你有帮助你,欢迎点赞关注,你的点赞对我很重要
文章来源: beishan.blog.csdn.net,作者:北山啦,版权归原作者所有,如需转载,请联系作者。
原文链接:beishan.blog.csdn.net/article/details/112235146
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)