Python怎么爬取B站视频弹幕
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,这篇文章主要介绍"Python怎么爬取B站视频弹幕",在日常操作中,相信很多人在Python怎么爬取B站视频弹幕问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Pytho
千家信息网最后更新 2025年02月07日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安全错误
数据库的锁怎样保障安全
迈高网络技术怎么样
网络安全银弹
朝阳软件开发价格
html5怎么插入数据库
电脑方舟服务器多少钱
邮政业安全中心 服务器
莱芜软件开发费用
网络安全监督管理强度等级
电信网络技术工程师倒班么
郑州p2p软件开发
idea 关联mysql数据库
夏令营网络安全课
贡山县网络安全局
数据库分类及图片
华建互联网科技发展招聘
国家网络安全简介
db2数据库导入文件
近一年建立专利数据库证明材料
egg框架上传图片到服务器
对象数据库插入数组时报错
网络安全毕业设计论文课题
广东茂名网络安全宣传
rebuild 数据库
迷你玩家在mc的服务器的视频
计算机网络技术实训论文题目
中小型软件开发公司
网络安全世界图
网络安全黑板报绘画视频
数据库查询某日期之前
数据库小组取名