如何获取B站视频弹幕?

如何通过python获取B站视频弹幕?

python版本:3.7.x
操作系统:windows

1.获取视频弹幕的av号与cid数据

av号我们可以从视频页面的url中获取!
在这里插入图片描述
在b站中,视频的弹幕文件我们可以通过cid数据进行访问,那么如何获取某视频的cid数据呢?
——通过f12审查元素获取
! Network→XHR→在Name中找heartbeat→往下翻即可找到cid值 (如图cid值为93165128)
如何获取B站视频弹幕?_第1张图片
——通过biliplus获取
在biliplus中,我们也可以通过b站av号,获取其相应的cid数据
但由于某些敏感问题,这里就不再介绍

2.获取弹幕的链接

将获取的cid数据填入{}(去掉{})
http://comment.bilibili.com/{cid}.xml
进入该网页可浏览所有弹幕
如何获取B站视频弹幕?_第2张图片

3.如何通过python将该文件保存在本地?(代码实现)

模块的调用
在这里我们需要通过requests库来获取网页的请求;通过beautifulsoup4来解析网址;通过lxml库来使用Xpath对HTML文档进行搜索;通过pandas来将其保存于本地的csv格式的文件

注意:若本地环境中未安装这些第三方模块,可通过pip进行自动安装

 pip install requests
 pip install beautifulsoup4
 pip install lxml
 pip install pandas

模块顺利安装完毕后,就可以开始编写程序啦!
首先是模块的调用

 import requests
 from bs4 import BeautifulSoup
 import pandas as pd

访问弹幕数据

 url = 'http://comment.bilibili.com/93165128.xml'
 html = requests.get(url).content

对弹幕数据进行解析

 html_data = str(html,'utf-8')
 bs4 = BeautifulSoup(html_data,'lxml')
 results = bs4.find_all('d')
 comments = [comment.text for comment in results]
 comments_dict = {'comments':comments}

将弹幕文件保存于本地

 br = pd.DataFrame(comments_dict)
 br.to_csv('文件名.csv',encoding='utf-8')

运行代码,我们即可成功地将目标视频弹幕保存于本地,格式为CSV

注意:如果用pycharm保存的文件默认在我们建立的PythonProjects中
如何获取B站视频弹幕?_第3张图片
如何获取B站视频弹幕?_第4张图片

你可能感兴趣的:(学习经验)