python爬取b站弹幕分析_B站弹幕爬取原理解析(python)

感谢

原理

概念

cid : 爬取弹幕需要的id号,可以由BV号通过API接口获得

步骤BV转cid

浏览器输入:https://api.bilibili.com/x/player/pagelist?bvid=BV1x54y1e7zf&jsonp=jsonp92659c32763e6311c0640e78fbaa2ff8439aaaa2.png

cid=226204073由cid得到当日条数小于1000的弹幕

浏览器输入https://api.bilibili.com/x/v1/dm/list.so?oid=2262040736fa4eae957eef2a8ec3c011bc53db06561dc0d40.png

得到了今日的1000条以内的弹幕(如果爆款视频,此页面的弹幕跟实际页面有出入)

该页面为XML格式,python可通过xmltodict库解析XML格式,在提取出来相应的弹幕文字,就可以进行词频分析,得到词云。4adb9255ada5b97061e610b682b8636764fe50ed.png

代码

BV号转cid函数

def CIDget(bvid):#获取视频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)     #调用爬取弹幕函数

爬取当前的弹幕函数

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)  # 解析xml为有序字典

liat_DM=data['i']['d']

print(len( liat_DM))

for i in range(len( liat_DM)):

print(liat_DM[i]['#text'])

得到弹幕aa43d1fcad977c218e931c48c570e9b4157f1c08.png

保存到txt文件,就可以

词云分析的高频弹幕词汇2e647695398fe210ff55cfc3b09452603ed52ae2.jpg

第一:冲冲冲

第二:全体

由此可见,大家都极度的支持《黑神话:悟空》,冲冲冲!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值