千家信息网

Python怎么爬取B站视频弹幕

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"Python怎么爬取B站视频弹幕",在日常操作中,相信很多人在Python怎么爬取B站视频弹幕问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Pytho
千家信息网最后更新 2025年12月03日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安全错误 数据库的锁怎样保障安全 嵌入式软件开发需要会什么 暗网信息网络安全 学网络安全在深圳好就业吗 软件开发过程图解 服务器最多可以存储多大的文件 分布式数据库三种结构 常熟营销网络技术咨询热线 网络安全建设解决方案 学习网络安全的笔记本电脑配置 荆门淘宝客程序软件开发 ad域控服务器要求配置高吗 汽车空调服务器安全吗 网络安全宣传图片画画大全 云南正扬互联网科技有限公司 18年软件开发企业税率 软件开发行业的前景 软件开发类投标资质认证 mtk手机测试软件开发 数据库字段插入逗号分隔的字符串 全球网络安全监管趋势 广州物联网软件开发公司 网络安全等保查询 关于网络安全法律的书籍推荐 数据库 变慢了 数据仓库实际就是大型的数据库 java进入服务器目录 软件开发的发展前景 范文 我的世界最大的服务器论坛 数据库删除后还能找回来吗 嘟嘟网络技术有限公司是干什么的
0