# 我让openclaw做了一个B站弹幕分析工具自动抓取词云情感分析舆情报告开源 大家好,最近我让openclaw把我自己在内容运营里常用的一套“弹幕分析流程”做成了一个可复用的小项目: 👉 **bilibili-danmaku** GitHub:[https://github.com/Smartloe/bilibili-danmaku](https://link.zhihu.com/?target=https%3A//github.com/Smartloe/bilibili-danmaku) 核心目标很直接: * 给我一个 B 站视频链接 * 自动抓取弹幕 * 自动做分词清洗 * 自动输出词云图 + 情感分析 + 舆情报告 适合做内容复盘、热点观察、用户反馈提炼。 一、这个项目解决了什么问题? -------------- 日常做视频复盘时,常见痛点是: 1. **弹幕采集麻烦**:每次手动导出/复制,效率很低。 2. **词云质量不稳定**:不清洗会被“哈哈哈/666/这边那边”污染。 3. **舆情判断缺标准**:没有统一口径,沟通时容易“拍脑袋”。 这个项目把整条链路打通了: > 抓取 → 清洗 → 关键词 → 词云 → 情感 → 报告 --- 二、功能特性 ------ * ✅ 自动解析 `BVID -> CID`,抓取弹幕 XML * ✅ 导出结构化数据:CSV / JSON / TXT * ✅ `jieba` 分词 + 干扰词清洗 * ✅ `SnowNLP` 情感分析(正/中/负分布) * ✅ `wordcloud` 生成高密度中文词云 PNG * ✅ 自动生成 Markdown 舆情报告 三、项目结构 ------ ``` bilibili-danmaku/ ├── SKILL.md ├── README.md ├── README.en.md ├── requirements.txt ├── scripts/ │ ├── ensure_env.sh │ ├── fetch_danmaku.py │ ├── fetch.sh │ ├── analyze_danmaku.py │ └── analyze.sh ├── references/ │ ├── methodology.md │ └── stopwords.default.txt └── output/ ``` 四、在 OpenClaw 里一键使用(推荐) ---------------------- 如果你本身就在用 OpenClaw,最省事的方式是直接从 ClawHub 安装: ``` clawhub install bilibili-danmaku ``` 安装后开启一个新的 OpenClaw 会话,直接给视频链接即可调用技能完成: * 弹幕抓取 * 词云生成 * 情感分析 * 舆情报告输出 五、源码方式(3 步) ----------- ### 1)安装依赖 ``` cd bilibili-danmaku bash scripts/ensure_env.sh ``` ### 2)抓取弹幕 ``` python3 scripts/fetch_danmaku.py \ --url "https://www.bilibili.com/video/BV17JfuBqEqg" \ --outdir "./output" ``` 支持短链: ``` python3 scripts/fetch_danmaku.py --url "https://b23.tv/gO0nMGs" --outdir "./output" ``` ### 3)分析并出报告 ``` bash scripts/analyze.sh \ "./output/_danmaku.csv" \ "./output/_meta.json" \ "./output" \ "task_name" ``` 输出文件: * `task_name_top_words.json` * `task_name_sentiment.json` * `task_name_wordcloud.png` * `task_name_report.md` 六、为什么这版词云更“干净”? --------------- 我在分词后做了数据清洗,重点是四件事: 1. **停用词过滤**:默认词表 + 自定义词表 2. **噪声词过滤**:比如 `哈哈哈 / 233 / 666 / 纯符号` 3. **token 规范化**:别名合并、重复字符压缩 4. **高文档频率短词剔除**:去掉“出现太广但信息量低”的词 你还可以临时追加干扰词: ``` ./.venv/bin/python scripts/analyze_danmaku.py \ --csv "./output/_danmaku.csv" \ --meta "./output/_meta.json" \ --outdir "./output" \ --name "task_clean" \ --extra-stopwords "妈妈,亲戚,那边,这边" ``` 七、情感分析怎么做? ---------- 使用 `SnowNLP`,每条弹幕都会得到一个 `0~1` 的情绪分: * `>= 0.60`:positive * `<= 0.40`:negative * 中间:neutral 最后汇总成: * 正向/中性/负向占比 * 平均情绪分 * 代表性正负样本 这对“选题复盘”和“评论区风向判断”很实用。 八、适用场景 ------ * 内容运营:复盘某条视频的用户反馈 * 新媒体团队:快速形成“可汇报”的舆情材料 * 创作者:看粉丝关注点与争议点 * 数据分析同学:做多视频横向对比 九、我自己的使用建议 ---------- 如果你要把它用于日常工作流,我建议: 1. **先跑单视频**,确认数据链路与参数 2. **再跑批量视频**,做横向对比 3. 维护一个自己的 `stopwords` 词表(按垂类持续迭代) 4. 报告里优先看三件事: * 情绪结构是否异常 * 高频词是否偏离内容定位 * 负向样本是否集中在某个可改进点 十、开源地址 ------ 如果你刚好也在做内容分析,欢迎直接拿去用: 🔗 GitHub:[https://github.com/Smartloe/bilibili-danmaku](https://link.zhihu.com/?target=https%3A//github.com/Smartloe/bilibili-danmaku) 欢迎提 issue / PR,一起把它打磨成更顺手的中文内容分析工具。🚀 十一、免责声明 ------- 请遵守 B站平台规则与相关法律法规。 本项目仅用于公开数据分析与研究,不用于违规抓取和滥用。