bilibili-danmaku: 自动抓取弹幕、生成词云与情感分析报告的开源工具
做视频复盘时,手动处理弹幕效率低且缺乏标准。这里分享一个基于 Python 的开源项目,打通了从抓取、清洗到情感分析的完整链路。
核心功能
- 自动解析 BVID 获取 CID,抓取弹幕 XML
- 导出结构化数据:CSV / JSON / TXT
- jieba 分词 + 干扰词清洗
- SnowNLP 情感分析(正/中/负分布)
- wordcloud 生成高密度中文词云 PNG
- 自动生成 Markdown 舆情报告
项目结构
bilibili-danmaku/
├── SKILL.md
├── README.md
├── requirements.txt
├── scripts/
│ ├── fetch_danmaku.py
│ └── analyze_danmaku.py
└── output/
本地部署与使用
推荐直接在本地运行脚本,无需依赖特定平台。
1. 安装依赖
cd bilibili-danmaku
bash scripts/ensure_env.sh
2. 抓取弹幕
直接传入视频链接即可,支持长链和短链。
python3 scripts/fetch_danmaku.py --url "https://www.bilibili.com/video/BV17JfuBqEqg" --outdir "./output"
3. 分析并出报告
对导出的 CSV 文件进行分析,生成词云和报告。
bash scripts/analyze.sh "./output/<xxx>_danmaku.csv" "./output/<xxx>_meta.json" "./output" "task_name"
输出文件包括词云图、情感分布 JSON 及 Markdown 报告。
数据处理细节
为了让词云更'干净',我在分词后做了四层清洗:停用词过滤、噪声词过滤、Token 规范化、高文档频率短词剔除。
如需临时追加干扰词,可执行:
./.venv/bin/python scripts/analyze_danmaku.py --csv "./output/<xxx>_danmaku.csv" --extra-stopwords "妈妈,亲戚,那边,这边"
情感分析逻辑
使用 SnowNLP 计算每条弹幕的情绪分(0~1):
-
= 0.60:positive
- <= 0.40:negative
- 中间:neutral
这对选题复盘和评论区风向判断很实用。
适用场景
- 内容运营:复盘某条视频的用户反馈
- 新媒体团队:快速形成可汇报的舆情材料
- 创作者:看粉丝关注点与争议点
- 数据分析同学:做多视频横向对比
合规声明
请遵守 B 站平台规则与相关法律法规。本项目仅用于公开数据分析与研究,不用于违规抓取和滥用。


