Lisayinyy

xiaohongshu-public-monitor

"小红书舆论监控 - 自动搜索小红书帖子、深入详情页抓取正文/图片/评论、筛选需要舆论引导的内容、生成多人设评论话术、输出到飞书多维表格。适用于任何品牌/产品的小红书舆情监控。Use when: (1) 需要监控小红书上的品牌/产品讨论, (2) 需要生成多角色评论话术, (3) 需要将监控结果输出到飞书表格, (4) 用户提到舆论监控、舆情分析、小红书评论, (5) 需要抓取小红书帖子详情、图片、评论。"

Lisayinyy 0 Updated 2mo ago

Resources

7
GitHub

Install

npx skillscat add lisayinyy/xiaohongshu-public-monitor

Install via the SkillsCat registry.

SKILL.md

小红书舆论监控 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 脚本(已弃用)

登录

  1. 用 browser 工具打开小红书(profile=clawd)
  2. 每次执行前先检查登录状态(访问首页,看是否出现登录弹窗)
  3. 已登录 → 直接执行;未登录 → 截图发给用户扫码

快速开始

1. 配置

复制 config.example.yamlconfig.yaml,填入你自己的信息:

  • 品牌名和产品(必填)
  • 搜索关键词(必填,建议 3-5 个)
  • 飞书多维表格 app_token 和 table_id(必填)
  • 3 个评论人设(必填,选你的目标用户中最有说服力的 3 种人)
  • 竞品列表(用于识别对比帖)
  • 参考数据(可选,评论中可引用的真实数据)

config.example.yaml 是一份完整的示例配置(AI行业),可作为参考。

2. 运行

告诉 Agent 执行舆情监控,会自动走完全部 6 步流程。


工作流程(6 步)

Step 1:搜索列表页

用内置浏览器(browser 工具)执行:

  1. 打开搜索页:https://www.xiaohongshu.com/search_result?keyword={关键词}&source=web_explore_feed
  2. 等待页面加载(2-3 秒)
  3. 点击页面上的「筛选」按钮
  4. 选择时间范围(如「一天内」)和排序方式(如「最多点赞」)
  5. 滚动翻页:执行 window.scrollBy(0, 1500) 加载更多结果,每次滚动后等待 2 秒
  6. 从列表中提取每条帖子的:
    • 标题
    • 作者昵称
    • 帖子链接(/explore/{note_id} 格式)
    • ⚠️ 列表页只显示点赞数(且是缩写格式如 1.2万),不要用列表页的数据作为最终互动数据
  7. 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.comxiaohongshu.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 条必满足)

  1. 详情页能正常打开,标题内容对得上
  2. 作者不为空
  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. 不合格评论自进化处理

当评论未通过质量检查时,不是简单重写,而是执行学习闭环:

  1. 诊断 — 识别具体是哪项检查没通过、属于什么 AI 模式
  2. 记录 — 将不合格评论和原因写入 .learnings/COMMENT_RULES.md
    ## [日期] 三段式结构
    - **评论原文**:首先这个产品性能很强,其次价格便宜,最后服务也好
    - **不合格原因**:三段式结构,一眼AI
    - **AI模式类型**:三段式法则
    - **提取规则**:对比不要分点列举,用一句话带过多个优势
    - **已更新到**:style.md
  3. 提取规则 — 从失败案例中提取通用规则
  4. 更新 style.md — 将新规则写入 ~/.writing-style-iterator/style.md
  5. 更新 SKILL.md — 如果是反复出现的模式,将规则固化到本 SKILL.md 的评论红线中
  6. 重新生成 — 基于更新后的规则重写该条评论
  7. 再次检查 — 重新走 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 高优先级,不会全是低
  • 自适应:同一行业里,流量大的时候高标准,流量小的时候低标准
  • 简单:审核员拿到表格,从上往下处理就行

审核员反馈学习

审核员在飞书表格中可以手动调整紧急程度。每次跑监控时:

  1. 读取上一批次中被审核员调整过的记录
  2. 对比 Agent 判定 vs 审核员判定
  3. 分析偏差原因(是威胁度估错了?还是传播力判错了?)
  4. 将偏差规则记录到 .learnings/URGENCY_RULES.md
  5. 下次打分时,应用修正规则

示例

## [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 新增)

监控完成后,可以额外生成一份综合分析报告:

  1. 读取所有抓取的帖子正文和评论
  2. 用 vision 能力查看下载的帖子图片
  3. 按主题归类(而不是逐帖罗列)
  4. 分析趋势:舆论倾向、热点话题、竞品对比焦点
  5. 输出报告保存到 ~/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/               # 草稿快照