目录
B站弹幕API接口
B站弹幕API接口为:https://api.bilibili.com/x/v1/dm/list.so?oid=XX
输入B站视频oid号,就可以看到相应视频上的弹幕。如下图所示
有了B站弹幕API接口,只需要通过解析数据,提取弹幕文字。
源码如下:
import requests
import re
import jieba # 精确词语
import wordcloud # 生成词云
import imageio # 可视化图形
# 加载可视化图形,传入词云
mask = imageio.imread('./img.png')
def get_danmu(url):
response = requests.get(url=url)
response.encoding = 'utf-8' # 防止乱码
# 1.解析数据
pattern = re.compile('<d.*?>(.*?)</d>') # 正则匹配字符串模式
data = pattern.findall(response.text) # 提取数据
# 2.精确词语
word = jieba.lcut(' '.join(data)) # 将数据精确成词语
str = ' '.join(word) # 再将词语转换成字符串,为后续词云作准备
# 3.生成词云
cloud = wordcloud.WordCloud(font_path='msyh.ttc',width=800,height=400,background_color='white',mask=mask) # 初始化
cloud.generate(str) # 生成词云
cloud.to_file('danmu.png') # 保存图片
if __name__ == '__main__':
oid = input('请输入视频oid:')
url = 'https://api.bilibili.com/x/v1/dm/list.so?oid={0}'.format(oid)
get_danmu(url)
运行效果如图: