拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

用 OpenClaw 给 B 站弹幕做舆情分析 SKILL:自动抓取 + 词云 + 情感分析 + 报告生成(附 TaoToken 配置)

用 OpenClaw 给 B 站弹幕做舆情分析 SKILL:自动抓取 + 词云 + 情感分析 + 报告生成(附 TaoToken 配置) 1. 为什么我要把 B 站弹幕分析做成一个 SKILL做内容复盘最烦的不是剪视频而是看完几千条弹幕还不知道观众到底在骂什么、夸什么。手动导出弹幕、复制到 Excel、再一条条看效率低到离谱。我试过用 OpenClaw 把「抓取 → 清洗 → 词云 → 情感 → 报告」整条链路封装成一个可复用的 SKILL给它一个 B 站视频链接它就能自动跑完并输出一份 Markdown 舆情报告。这套东西适合谁内容运营、新媒体团队、做热点观察的分析同学以及想拿弹幕做用户反馈提炼的创作者。核心检索词就三个openclaw、B站弹幕分析、情感分析。你不需要会写爬虫也不需要懂 NLP只要能把 config.toml 配好、把命令跑通剩下的交给脚本。整条链路拆开看是五步解析 BVID 拿到 CID、抓取弹幕 XML、jieba 分词加干扰词清洗、SnowNLP 打情绪分、wordcloud 出图并生成报告。下面我按「先配通道、再跑抓取、再出报告、最后排障」的顺序写每一步都给可复制的命令和参数。2. TaoToken 前置统一 Key 与 API 通道OpenClaw 在跑 SKILL 时如果涉及模型调用比如让模型帮忙总结舆情、生成报告摘要需要一个稳定的 API 通道。我这边统一用 TaoToken 来管 Key好处是模型对话、编码、Agent 任务走同一个入口不用在多个平台之间来回切。官网入口在这里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。API 基址是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置里直接写它就行。你需要先拿到 Key。进控制台创建https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsole_keyutm_campaignrewrite 然后在 API Keys 页面生成https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapikeys_keyutm_campaignrewrite 。生成后复制那串 sk- 开头的字符串后面写进 config.toml。如果你只是想让模型帮忙润色报告用模型对话页验证一下通道是否通https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodels_chatutm_campaignrewrite 。如果你打算把弹幕分析挂到长期编码或 Agent 工作流里建议直接看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcodingplan_agentutm_campaignrewrite 它的额度模型更适合批量任务。注意Key 只存在本地 config.toml 或环境变量里不要提交到 Git也不要在脚本里硬编码后 push。3. 可复制配置config.toml 骨架与依赖安装先把项目拉下来。源码方式适合想改脚本的人OpenClaw 用户可以直接走 ClawHub 安装。# 方式一源码 git clone https://github.com/Smartloe/bilibili-danmaku.git cd bilibili-danmaku # 方式二OpenClaw 内安装 clawhub install bilibili-danmaku依赖安装用项目自带的脚本它会建虚拟环境并装 jieba、SnowNLP、wordcloud 这些包bash scripts/ensure_env.sh接下来是 config.toml。OpenClaw 的模型通道配置一般放在用户目录下的配置文件中我把它写成下面这个骨架你按自己的路径调整# ~/.openclaw/config.toml [model] provider taotoken base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model_name claude-sonnet-4-20250514 timeout 120 [skill.bilibili_danmaku] enabled true output_dir ./output stopwords ./references/stopwords.default.txt sentiment_positive 0.60 sentiment_negative 0.40几个参数说明一下。base_url 固定写 https://taotoken.net/api 不要加斜杠结尾。sentiment_positive 和 sentiment_negative 是情感分阈值SnowNLP 给每条弹幕打 0~1 的分大于等于 0.60 算正向小于等于 0.40 算负向中间是中性。timeout 给 120 秒批量跑的时候模型总结报告可能慢一点。如果你不想把 Key 写进文件可以用环境变量覆盖export TAOTOKEN_API_KEYsk-你的密钥然后在 config.toml 里把 api_key 那行删掉或留空OpenClaw 会优先读环境变量。这样更安全适合多人共用的机器。4. 验证请求从抓取到报告跑通一遍配置写完先别急着批量跑拿一个视频验证链路。抓取脚本支持完整链接和短链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跑完 output 目录下会出现两个文件一个是xxx_danmaku.csv每行一条弹幕一个是xxx_meta.json存视频标题、BVID、CID 这些元信息。如果这一步报错先看第 5 节的排障。接着跑分析并出报告bash scripts/analyze.sh \ ./output/xxx_danmaku.csv \ ./output/xxx_meta.json \ ./output \ task_name把xxx换成实际文件名task_name 是你给这次任务起的名字。跑完输出四个文件文件名内容task_name_top_words.json高频词及词频task_name_sentiment.json正/中/负占比、平均情绪分、代表样本task_name_wordcloud.png中文词云图task_name_report.mdMarkdown 舆情报告想临时追加干扰词比如某条视频里「妈妈」「亲戚」刷屏但没信息量可以这样跑./.venv/bin/python scripts/analyze_danmaku.py \ --csv ./output/xxx_danmaku.csv \ --meta ./output/xxx_meta.json \ --outdir ./output \ --name task_clean \ --extra-stopwords 妈妈,亲戚,那边,这边验证成功的标志是wordcloud.png 能打开且中文不乱码report.md 里有情绪结构、高频词、负向样本三段。如果模型通道配好了报告末尾还会有一段模型生成的舆情摘要。5. 本篇常见错排查报错一ModuleNotFoundError: No module named jieba说明依赖没装进当前 Python 环境。先确认你在项目根目录然后重新跑bash scripts/ensure_env.sh。如果还是不行手动激活虚拟环境再装source .venv/bin/activate pip install -r requirements.txt报错二抓取返回空 CSV 或 403B 站对请求频率有风控。先确认视频是公开的再降低请求频率。脚本里如果带了并发参数把它调成 1。另外短链解析失败时换成完整 BV 链接重试。报错三词云图中文变成方块这是字体问题。wordcloud 默认字体不含中文需要在脚本里指定中文字体路径比如/System/Library/Fonts/PingFang.ttcmacOS或C:\Windows\Fonts\msyh.ttcWindows。改analyze_danmaku.py里 font_path 那一行即可。报错四模型通道 401 或超时先检查 config.toml 里的 base_url 是不是 https://taotoken.net/api api_key 有没有多余空格。然后单独验证通道进模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodels_chatutm_campaignrewrite 发一条消息能正常回就说明 Key 没问题。如果对话通但脚本超时把 timeout 从 120 调到 300。报错五情感分析结果全是中性SnowNLP 对短文本和网络用语不敏感弹幕里「哈哈哈」「666」这类词本身就不带情绪极性。解决办法是在停用词表里加噪声词同时把阈值放宽比如正向 0.55、负向 0.45。另外可以在报告里优先看负向样本而不是纠结整体分布。6. 把弹幕分析接进你的日常工作流单视频跑通之后下一步是批量。我的做法是维护一个视频链接列表循环调用 fetch 和 analyze输出目录按日期分文件夹。这样一周下来能横向对比不同选题的情绪结构。词表要持续迭代。默认停用词表只能过滤通用噪声垂类词得自己加。比如做数码内容「参数」「配置」这种词出现频率高但信息量低就该进自定义停用词。每跑一批就 review 一次 top_words把明显没用的词补进去。报告里我优先看三件事情绪结构是否异常负向突然超过 30% 就要警惕、高频词是否偏离内容定位、负向样本是否集中在某个可改进点。这三点比平均情绪分有用得多。如果你要把这套流程挂到长期 Agent 任务里建议走 Coding Plan 通道额度更稳https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcodingplan_agentutm_campaignrewrite 。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc_skillutm_campaignrewrite 里面有 config.toml 的完整字段说明和更多 SKILL 示例。Claude Code 相关的配置参考 https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode_skillutm_campaignrewrite 。最后提醒一句抓取和分析只用于公开数据的复盘研究遵守平台规则别拿去做违规用途。
返回列表