Python怎么爬取B站视频弹幕
发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要介绍"Python怎么爬取B站视频弹幕",在日常操作中,相信很多人在Python怎么爬取B站视频弹幕问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Pytho
千家信息网最后更新 2024年11月30日Python怎么爬取B站视频弹幕
这篇文章主要介绍"Python怎么爬取B站视频弹幕",在日常操作中,相信很多人在Python怎么爬取B站视频弹幕问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python怎么爬取B站视频弹幕"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
基本开发环境
Python 3.6
Pycharm
相关模块的使用
requests
re
安装Python并添加到环境变量,pip安装需要的相关模块即可。
一、明确需求
找一个弹幕比较多的视频爬取
二、网页数据分析
以前的B站弹幕视频,点击查看历史的弹幕,会给你返回一个json数据,包含了所有的弹幕内容。
现在点击历史弹幕数据,同样是有数据加载出来,但是里面的都是乱码了。
请求这个链接还是会得到想要的数据内容。
只需要使用正则表达匹配中文字符就可以匹配出来
三、解析数据并多页爬取
弹幕分页是根据日期来的,当点击 2021-01-01 的使用,返回的给我的数据并不是弹幕数据,而是所有的日期。
那么看到这里有人就会问了,那我想要爬取 2021-01-01 的弹幕数据怎么办?
这两个的url地址是不一样的,seg.so 才是弹幕数据url地址。
import requestsimport redef get_response(html_url): headers = { 'cookie': '你自己的cookie', 'origin': 'https://www.bilibili.com', 'referer': 'https://www.bilibili.com/video/BV19E41197Kc', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', } response = requests.get(url=html_url, headers=headers) return responsedef get_date(html_url): response = get_response(html_url) json_data = response.json() date = json_data['data'] print(date) return date if __name__ == '__main__': one_url = 'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid=120004475&month=2021-01' get_date(one_url)
返回的数据是json数据,根据字典键值对取值就可以得到相关数据。
四、保存数据(数据持久化)
def main(html_url): data = get_date(html_url) for date in data: url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=120004475&date={date}' html_data = get_response(url).text result = re.findall(".*?([\u4E00-\u9FA5]+).*?", html_data) for i in result: with open('B站弹幕.txt', mode='a', encoding='utf-8') as f: f.write(i) f.write('\n')
五、完整代码
import requestsimport redef get_response(html_url): headers = { 'cookie': '你自己的cookie', 'origin': 'https://www.bilibili.com', 'referer': 'https://www.bilibili.com/video/BV19E41197Kc', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36', } response = requests.get(url=html_url, headers=headers) return responsedef get_date(html_url): response = get_response(html_url) json_data = response.json() date = json_data['data'] print(date) return datedef save(content): for i in content: with open('B站弹幕.txt', mode='a', encoding='utf-8') as f: f.write(i) f.write('\n') print(i)def main(html_url): data = get_date(html_url) for date in data: url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=120004475&date={date}' html_data = get_response(url).text result = re.findall(".*?([\u4E00-\u9FA5]+).*?", html_data) save(result)if __name__ == '__main__': one_url = 'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid=120004475&month=2021-01' main(one_url)
到此,关于"Python怎么爬取B站视频弹幕"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
视频
学习
内容
历史
地址
日期
更多
模块
环境
帮助
实用
接下来
两个
乱码
代码
变量
字典
字符
怎么办
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库删除语句速度测试
网络安全法能处罚个人吗
摄像头自动识别软件开发
六年网络安全员
南昌熊猫网络技术有限
软件开发工程师erp方向
软件开发认知小结
学校网络安全检查自检报告
代理服务器登录邮箱无记录
noaa气象数据库
日立mcub02服务器插口
互联网时代黑科技有限公司
wind数据库下载
银川软件开发案例
server服务器关闭远程登录
石嘴山软件开发费用是多少
疫情期间服务器上市公司
人间地狱语音服务器连不上
数据库订单的属性有什么
网络安全周防范恶意软件
网络安全值班值守方案
红河州财政局网络安全整改中标
长沙大数据库安全性
会通过什么寻找服务器ip地址
苹果手机支持谷歌服务器吗
桃源软件开发职高
新华互联网科技升级
数据库下单流程图
校园网络安全培训资料
HCML启动器怎么导入服务器