"小红书舆论监控 - 自动搜索小红书帖子、深入详情页抓取正文/图片/评论、筛选需要舆论引导的内容、生成多人设评论话术、输出到飞书多维表格。适用于任何品牌/产品的小红书舆情监控。Use when: (1) 需要监控小红书上的品牌/产品讨论, (2) 需要生成多角色评论话术, (3) 需要将监控结果输出到飞书表格, (4) 用户提到舆论监控、舆情分析、小红书评论, (5) 需要抓取小红书帖子详情、图片、评论。"
Resources
7Install
npx skillscat add lisayinyy/xiaohongshu-public-monitor Install via the SkillsCat registry.
小红书舆论监控 Skill v2.0
搜索 → 详情页深入抓取 → 筛选 → 4层流水线打磨评论 → 写入飞书多维表格。
v2.0 新增:
- 详情页正文/图片/评论抓取
- 真人评论风格学习(writing-style-iterator)
- 两轮去AI味(humanize-zh + elatia-humanizer-zh)
- 8项质量检查清单
适用于任何行业:AI、电商、美妆、餐饮、教育……只需修改 config.yaml 即可适配。
浏览方式
使用内置浏览器(browser 工具,profile=clawd),不使用 Playwright 脚本。
- ✅ 不弹窗,不打扰用户工作
- ✅ 登录态相对持久(通常可保持数天,偶尔需要重新扫码)
- ✅ 不会出现 SingletonLock 冲突
- ❌
Playwright 脚本(已弃用)
登录
- 用 browser 工具打开小红书(profile=clawd)
- 每次执行前先检查登录状态(访问首页,看是否出现登录弹窗)
- 已登录 → 直接执行;未登录 → 截图发给用户扫码
快速开始
1. 配置
复制 config.example.yaml 为 config.yaml,填入你自己的信息:
- 品牌名和产品(必填)
- 搜索关键词(必填,建议 3-5 个)
- 飞书多维表格 app_token 和 table_id(必填)
- 3 个评论人设(必填,选你的目标用户中最有说服力的 3 种人)
- 竞品列表(用于识别对比帖)
- 参考数据(可选,评论中可引用的真实数据)
config.example.yaml 是一份完整的示例配置(AI行业),可作为参考。
2. 运行
告诉 Agent 执行舆情监控,会自动走完全部 6 步流程。
工作流程(6 步)
Step 1:搜索列表页
用内置浏览器(browser 工具)执行:
- 打开搜索页:
https://www.xiaohongshu.com/search_result?keyword={关键词}&source=web_explore_feed - 等待页面加载(2-3 秒)
- 点击页面上的「筛选」按钮
- 选择时间范围(如「一天内」)和排序方式(如「最多点赞」)
- 滚动翻页:执行
window.scrollBy(0, 1500)加载更多结果,每次滚动后等待 2 秒 - 从列表中提取每条帖子的:
- 标题
- 作者昵称
- 帖子链接(
/explore/{note_id}格式) - ⚠️ 列表页只显示点赞数(且是缩写格式如
1.2万),不要用列表页的数据作为最终互动数据
- 按
config.yaml中的关键词逐个搜索
注意:
- 小红书搜索 URL 参数不支持时间筛选,必须在页面上点击筛选按钮
- 默认滚动 5 次,可在 config.yaml 中调整
scroll_times
Step 2:去重
- 读取飞书多维表格(
app_token+table_id)中已有的「文章链接」字段 - 相同链接跳过,只处理新帖子
Step 3:详情页深入抓取(v2.0 新增)
对去重后的每篇帖子,逐一点进详情页抓取:
3a. 进入详情页
- 在搜索结果页点击帖子卡片(先移除
target属性防止新开标签页) - 等待详情页弹窗加载(等待
#detail-title元素出现,超时 3 秒)
3b. 抓取正文内容
- 标题:
#detail-title的文本 - 正文描述:
#detail-desc的文本 - 发布时间:详情页中的时间信息
3b-2. 抓取互动数据(⚠️ 必须从详情页获取)
- 详情页底部互动栏有完整的三项数据:👍点赞 ⭐收藏 💬评论
- 不要用搜索列表页的数据,列表页只有点赞数且是缩写格式
- 提取互动栏中的三个数值,注意处理缩写格式(
万→ ×10000,10万+→ 100000+) - 常见选择器:
.engage-bar区域内的点赞/收藏/评论按钮旁的数字
3c. 抓取图片
- 检查是否有图片轮播(
.swiper-button-next) - 如有轮播:循环点击下一张,直到按钮不可用,确保所有图片加载
- 提取所有图片 URL(
.note-slider .swiper-slide img) - 如无轮播:提取单图(
.media-container img) - 下载图片到本地:保存到
~/xiaohongshu-monitor/{日期}/images/目录 - 仅下载来自
xhscdn.com或xiaohongshu.com域名的图片
3d. 抓取评论
- 提取 Top 5 条评论(
.comment-item或.parent-comment) - 每条评论包含:用户名(
.name)和内容(.content) - 评论内容截断到 150 字
3e. 关闭详情页
- 点击关闭按钮(
.close-box),或按Escape - 等待 1.5 秒后处理下一篇
3f. 保存原始数据
- 将抓取的所有数据保存为
~/xiaohongshu-monitor/{日期}/raw_data.json
Step 4:筛选
基础门槛(3 条必满足):
- 详情页能正常打开,标题内容对得上
- 作者不为空
- 互动数据完整(👍点赞 ⭐收藏 💬评论)
内容质量(满足任一入表):
- 直接提及你的品牌或产品
- 同行业多个品牌/产品对比
- 榜单、排名、测评类内容
- 价格/性价比讨论
- 高互动且有争议讨论
不入表:
- 与你的业务完全无关
- 纯招聘/面试
- 互动极低且无对比内容
- 评论区已有足够正面声音
Step 5:生成评论 + 判定紧急度
评论生成是本 skill 的核心竞争力,采用 4 层流水线打磨,确保每条评论都像真人写的。
5a. 学习真人风格(writing-style-iterator)
在生成评论之前,先从 Step 3 抓取的真实评论中学习说话方式:
- 分析已有评论的语言特征:用词、句式、情绪、emoji 习惯
- 将风格规则写入
~/.writing-style-iterator/style.md - 识别评论区的整体氛围(正面/中性/负面)
- 识别已有的观点和论调,生成的评论必须避免雷同
每次监控都会积累风格规则,越用越像真人。
5b. 生成评论初稿(基于人设 + 真人风格)
- 按
config.yaml中定义的 3 个人设,每人设 2 条 = 共 6 条 - 评论要结合帖子正文内容(不是只看标题)
- 可引用
config.yaml中的reference_data数据 - 参考
style.md中积累的真人风格规则
生成原则(⭐ 最重要):
第一原则:先搞懂帖子到底在说什么
- 必须深入阅读帖子正文内容,不能只看标题
- 标题党很常见(如"还惨不忍睹吗?"实际是夸的),正文才是真实态度
- 搞清楚博主到底是在夸还是在踩,再决定评论方向
第二原则:参与讨论,而不是自说自话
- 先扫一遍评论区,找到可以接话的点
- 评论必须回应评论区已有的具体讨论
- 看到有人吐槽具体问题 → 针对那个问题给实用建议
- 看到有人说竞品更好 → 以用户身份反驳,分享自己的对比体验
- ❌ 绝对不能:评论区聊A话题,你的评论聊B话题
第三原则:像深度体验官,不像数据搬运工
- 评论要基于"我用过这个产品"的视角
- 分享具体使用场景、踩过的坑、实用技巧
- 数据最多偶尔提一个,而且要自然带出来,不是硬塞
- ✅ 「我用M2.7写代码确实挺顺的,特别是给它说清楚需求之后」
- ✅ 「提示词很重要,最好先让他写PRD,基于PRD构建系统」
- ❌ 「Code Arena上M2.7代码Elo 1452,全球第9」(数据搬运)
- ❌ 「AA基准50分第一梯队,成本$0.3每百万token」(广告感满满)
其他原则:
- ✅ 符合人设身份:但每个人设都要有真实使用体验,不是角色扮演念台词
- ✅ 1-3 句话,像真人随手打的
- ❌ 不要用网红腔("姐妹们"、"宝子们"、"绝绝子")
- ❌ 不要每条评论都引数据 — reference_data 是偶尔用的佐料,不是主菜
- ❌ 不要写小作文
5c. 去AI味(两轮打磨)
初稿生成后,必须经过两轮去AI味处理:
第一轮:humanize-zh(中文口语化)
参考 skills/humanize-zh/SKILL.md:
- 替换 AI 连接词:"此外"→"还有啊"、"然而"→"但问题是"、"因此"→"所以啊"
- 替换 AI 开头:"在当今..."→ 直接说事、"随着..."→ 具体经历
- 加入口语元素:"说白了"、"讲道理"、"挺..."
- 加入不完美:口头禅、重复强调("真的,真的特别...")
- 用具体代替抽象:数字、时间、个人体验
第二轮:elatia-humanizer-zh(深度检查)
参考 skills/elatia-humanizer-zh/SKILL.md:
- 10 种核心 AI 模式扫描(夸大象征、宣传性语言、模糊归因、填充短语等)
- 三段式法则(强行三组→改为两项或不分组)
- 否定式排比("不仅...而且..."→直接说)
- 句子节奏(连续相同长度→打断)
- 谄媚语气和破折号滥用
5d. 最终质量检查(每条评论必须全部通过)
- ✓ 读起来像一个真实的小红书用户随手写的吗?
- ✓ 有没有 AI 常用词(此外、至关重要、深入探讨、格局)?
- ✓ 句子长短有变化吗?
- ✓ 有没有具体的个人感受或经历?
- ✓ 和同一帖子的其他 5 条评论风格都不同吗?
- ✓ 和帖子已有评论不雷同吗?
- ✓ 符合该人设的说话风格吗(技术专家 vs 小白 vs 产品经理)?
- ✓ 像朋友聊天,而不是写文章吗?
⚠️ 任何一条不通过,进入自进化闭环(5d-retry)。
5d-retry. 不合格评论自进化处理
当评论未通过质量检查时,不是简单重写,而是执行学习闭环:
- 诊断 — 识别具体是哪项检查没通过、属于什么 AI 模式
- 记录 — 将不合格评论和原因写入
.learnings/COMMENT_RULES.md## [日期] 三段式结构 - **评论原文**:首先这个产品性能很强,其次价格便宜,最后服务也好 - **不合格原因**:三段式结构,一眼AI - **AI模式类型**:三段式法则 - **提取规则**:对比不要分点列举,用一句话带过多个优势 - **已更新到**:style.md - 提取规则 — 从失败案例中提取通用规则
- 更新 style.md — 将新规则写入
~/.writing-style-iterator/style.md - 更新 SKILL.md — 如果是反复出现的模式,将规则固化到本 SKILL.md 的评论红线中
- 重新生成 — 基于更新后的规则重写该条评论
- 再次检查 — 重新走 5d 质量检查,最多重试 2 次
⚠️ 重试 2 次仍不合格 → 标记为「需人工审核」,写入表格时在备注中说明。
自进化效果:每次监控都会积累新规则,评论质量会随着使用次数持续提升。
5e. 判定紧急程度
- 🔴 高:发布 <24h + 互动数据增长快 + 对比/榜单类 + 负面倾向
- 🟡 中:有传播潜力 + 缺正面声音 + 评价中性
- 🟢 低:正面帖 + 互动稳定 + 已有正面声音
Step 6:风格规则保存
- 将本次监控中学到的新风格规则更新到
~/.writing-style-iterator/style.md - Git commit 保存,下次监控自动复用
Step 7:写入飞书表格
按「发现日期从新到旧 → 紧急程度高到低」排序,写入飞书多维表格。
⚠️ 发现日期必须是执行监控当天的日期(即"今天"),不是帖子的发布时间。用当前系统时间获取,不要手动计算。
评论人设
在 config.yaml 中定义 3 个人设。根据你的行业选择最合适的角色组合。
选人设的原则:选你的目标用户群里最有说服力的 3 种人。
示例:
| 行业 | 人设1 | 人设2 | 人设3 |
|---|---|---|---|
| AI/科技 | 技术专家 | 普通用户 | 产品经理 |
| 美妆 | 资深化妆师 | 学生党 | 成分党博主 |
| 餐饮 | 美食博主 | 附近居民 | 餐饮同行 |
| 电商 | 老买家 | 第一次买的人 | 行业从业者 |
| 教育 | 在读学员 | 家长 | 教育行业人士 |
每个人设需要定义:
- 特征:这个人是谁
- 风格:怎么说话(口语化/专业/情绪化)
- 目的:为什么要用这个人设评论
评论红线
- ❌ 不写广告语
- ❌ 不贬低竞品(只客观对比)
- ❌ 不虚构数据
- ❌ 多条评论风格不能雷同
- ❌ 负面帖下不强行洗白
- ❌ 不得与帖子已有评论观点/措辞雷同
- ❌ 不得出现 AI 味词汇(此外、至关重要、深入探讨、不仅...而且...、综上所述等)
- ❌ 不得使用完美的三段式结构(第一...第二...第三...)
紧急程度判定(相对排名制)
核心原则:不用绝对阈值,用本批次内的相对排名。
不管什么行业,筛选出的帖子中始终保持 1/3 高、1/3 中、1/3 低 的分布。
第一步:给每条帖子打综合分
两个维度加权求和,得到综合分:
威胁度(权重 60%)
| 规则 | 条件 | 分值 |
|---|---|---|
| T1 | 品牌被负面提及 | +5 |
| T2 | 竞品对比中品牌被贬低或缺席 | +4 |
| T3 | 帖子含事实错误 | +3 |
| T4 | 品牌被中性提及 | +2 |
| T5 | 评论区无正面声音 | +2 |
| T6 | 竞品对比中品牌表现正面 | +1 |
传播力(权重 40%)
| 规则 | 条件 | 分值 |
|---|---|---|
| S1 | 点赞数在本批次中排名前 20% | +5 |
| S2 | 点赞数在本批次中排名 20%-50% | +3 |
| S3 | 点赞数在本批次中排名 50%-80% | +2 |
| S4 | 点赞数在本批次中排名后 20% | +1 |
| S5 | 发布 < 12 小时 | +2 |
| S6 | 发布 12-24 小时 | +1 |
| S7 | 评论数在本批次中排名前 30% | +2 |
综合分 = 威胁度总分 × 0.6 + 传播力总分 × 0.4
第二步:按综合分排序,三等分
将所有筛选出的帖子按综合分从高到低排序,然后:
- 前 1/3 → 🔴 高(优先处理)
- 中 1/3 → 🟡 中(当天处理)
- 后 1/3 → 🟢 低(排期处理)
如果帖子总数不能被 3 整除,多余的分给🔴高(宁可多处理,不漏掉)。
示例:筛选出 10 条帖子
- 排名 1-4 → 🔴高(4条)
- 排名 5-7 → 🟡中(3条)
- 排名 8-10 → 🟢低(3条)
第三步:置顶规则(无论排名如何,强制🔴高)
以下情况不管综合分排多少,直接置顶为🔴高:
- 品牌被负面提及 + 传播力在本批次排名前 50%
- 帖子含事实错误(关于你的产品的不实数据)
这些帖子置顶后,剩余帖子重新按 1/3 比例分配🟡中和🟢低。
为什么用相对排名
- ✅ 跨行业通用:不需要为不同行业调阈值
- ✅ 保证产出:永远有 1/3 高优先级,不会全是低
- ✅ 自适应:同一行业里,流量大的时候高标准,流量小的时候低标准
- ✅ 简单:审核员拿到表格,从上往下处理就行
审核员反馈学习
审核员在飞书表格中可以手动调整紧急程度。每次跑监控时:
- 读取上一批次中被审核员调整过的记录
- 对比 Agent 判定 vs 审核员判定
- 分析偏差原因(是威胁度估错了?还是传播力判错了?)
- 将偏差规则记录到
.learnings/URGENCY_RULES.md - 下次打分时,应用修正规则
示例:
## [2026-03-21] 审核员上调:🟢低 → 🔴高
- **帖子**:xxx
- **Agent判定**:威胁度3 + 传播力2 = 🟢低
- **审核员调整**:🔴高
- **偏差原因**:虽然点赞不高,但作者是行业意见领袖
- **提取规则**:特定作者列表需要额外加权(维护在 config.yaml 的 watchlist 中)表格字段
| 字段 | 说明 |
|---|---|
| 文章标题 | 帖子标题 |
| 文章链接 | 原文链接 |
| 作者 | 作者昵称(不能为空) |
| 发表时间 | 文章发布时间 |
| 发现日期 | 抓取日期 |
| 互动数据 | 👍⭐💬 三项齐全(⚠️ 必须从详情页获取,列表页数据不准) |
| 关键词命中 | 命中的搜索词 |
| 提及竞品 | 提到的竞品 |
| 正文摘要 | 帖子正文前 200 字(v2.0 新增) |
| 已有评论 | 帖子已有的 Top 评论摘要(v2.0 新增) |
| 文章倾向 | 正面/中性/负面 |
| 紧急程度 | 🔴高/🟡中/🟢低 |
| 干预理由 | 为什么干预 |
| 人设评论 | 每人设 2 条 |
| 建议水军数量 | 投入账号数 |
| 执行状态 | 待处理/进行中/已完成 |
数据存储
每次监控的原始数据保存在本地:
~/xiaohongshu-monitor/
└── {YYYY-MM-DD}/
├── raw_data.json # 所有抓取的帖子数据
├── images/ # 下载的帖子图片
│ ├── post_1_img_1.jpg
│ ├── post_1_img_2.webp
│ └── ...
└── report.md # 可选:AI 综合分析报告可选:AI 综合分析报告(v2.0 新增)
监控完成后,可以额外生成一份综合分析报告:
- 读取所有抓取的帖子正文和评论
- 用 vision 能力查看下载的帖子图片
- 按主题归类(而不是逐帖罗列)
- 分析趋势:舆论倾向、热点话题、竞品对比焦点
- 输出报告保存到
~/xiaohongshu-monitor/{日期}/report.md
报告规则:
- 不要逐帖列举("帖子1...帖子2..."),要按主题综合分析
- 有价值的评论观点融入正文叙述
- 图片中的关键信息(数据图、对比表等)要解读
- 保留多元观点,不过度总结
文件结构
xiaohongshu-public-monitor/
├── SKILL.md # 使用说明(本文件)
├── config.yaml # 配置文件(用户填自己的信息)
├── config.example.yaml # 示例配置(AI行业,可参考)
├── scripts/
│ └── xhs_search.py # Playwright 搜索脚本(已弃用,保留备份)
├── references/
│ └── workflow.md # 工作流说明
├── .learnings/
│ ├── COMMENT_RULES.md # 评论生成学习规则(自动积累)
│ └── URGENCY_RULES.md # 紧急程度学习规则(审核员反馈)
├── assets/外部依赖文件:
~/.writing-style-iterator/
├── style.md # 真人风格规则(自动学习积累)
└── drafts/ # 草稿快照