感谢
原理
概念
cid : 爬取弹幕需要的id号,可以由BV号通过API接口获得
步骤BV转cid
浏览器输入:https://api.bilibili.com/x/player/pagelist?bvid=BV1x54y1e7zf&jsonp=jsonp
cid=226204073由cid得到当日条数小于1000的弹幕
浏览器输入https://api.bilibili.com/x/v1/dm/list.so?oid=226204073
得到了今日的1000条以内的弹幕(如果爆款视频,此页面的弹幕跟实际页面有出入)
该页面为XML格式,python可通过xmltodict库解析XML格式,在提取出来相应的弹幕文字,就可以进行词频分析,得到词云。
代码
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'])
得到弹幕
保存到txt文件,就可以
词云分析的高频弹幕词汇
第一:冲冲冲
第二:全体
由此可见,大家都极度的支持《黑神话:悟空》,冲冲冲!!!