如何通过python获取B站视频弹幕?
python版本:3.7.x
操作系统:windows
1.获取视频弹幕的av号与cid数据
av号我们可以从视频页面的url中获取!
在b站中,视频的弹幕文件我们可以通过cid数据进行访问,那么如何获取某视频的cid数据呢?
——通过f12审查元素获取
! Network→XHR→在Name中找heartbeat→往下翻即可找到cid值 (如图cid值为93165128)
——通过biliplus获取
在biliplus中,我们也可以通过b站av号,获取其相应的cid数据
但由于某些敏感问题,这里就不再介绍
2.获取弹幕的链接
将获取的cid数据填入{}(去掉{})
http://comment.bilibili.com/{cid}.xml
进入该网页可浏览所有弹幕
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中