📦 Huo15

v1.0.1

小红书笔记抓取+数据分析。复用浏览器 Cookie 登录态,强节流+风控检测,降低封号风险。支持搜索、笔记详情、用户主页抓取;可离线分析关键词、互动、发文时段、爆款特征。触发词:小红书、xhs、笔记分析、小红书选题、爆款研究。

0· 53·0 当前·0 累计
zhaobod1 头像by @zhaobod1 (Job Zhao)
下载技能包
最后更新
2026/4/24
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该技能的代码和说明与其声明的用途(抓取/分析小红书)一致,但包元数据中未提及所需的敏感环境变量(用户的 XHS_COOKIE),这是一个明显的出入,用户在安装前应了解这一点。
评估建议
该技能确实如其所声称(通过浏览器 cookie 读取你的 Xiaohongshu 页面并离线分析)。然而: - 代码依赖一个敏感环境变量 XHS_COOKIE(你的浏览器登录 cookie)。包元数据未声明任何必需环境变量——请作者将 XHS_COOKIE 加入清单,使其一目了然。将此 cookie 视为密码:切勿分享,若怀疑泄露立即轮换账户 cookie。 - 运行脚本将使用你的登录会话,从你的环境向 xiaohongshu.com 发起已认证请求,可能触发站点反滥用机制;请遵循提供的 safety_check 与所述速率限制。若担心主账户风险,建议使用一次性/测试账户。 - 该包仅含本地 Python 脚本(无远程安装器),可自行审查所含文件(文件存在且可读)。若不便阅读代码,请在隔离环境(VM 或容器)中运行,且勿暴露其他凭据。 - 法律/ToS 风险:自动化抓取服务可能违反服务条款。确保你有权抓取数据,并了解潜在账户后果。 提升信任度的做法:更新清单声明 XHS_COOKIE 为必需、提供显式校验和/签名或已验证的来源/主页,或作者将其发布在已知项目页面。...
详细分析 ▾
用途与能力
名称/描述(XHS 笔记抓取 + 分析)与所包含的脚本(scrape-note/search/user、parser、analyzer)一致。代码仅通过 web 请求访问 xiaohongshu.com 并在本地分析,这些能力符合所述用途。
指令范围
运行时指令明确要求用户导出其浏览器登录 Cookie(XHS_COOKIE),脚本调用 load_cookie_from_env() 读取。这对抓取任务是必需的,但属敏感信息。SKILL.md 和脚本本身仍在范围内(仅抓取页面并解析本地数据,且含 safety_check)。然而,manifest 未声明该必需环境变量,导致指令与 manifest 不一致。
安装机制
无安装说明或远程下载;这是一个指令 + 本地脚本技能。所有代码均已包含在包内,安装时未发现外部安装器或下载的归档文件。
凭证需求
代码唯一使用的敏感信息是浏览器 Cookie(XHS_COOKIE),其用途与以已认证浏览器会话方式抓取站点相称。然而,registry 元数据未列出任何必需环境变量,而 SKILL.md 与代码却要求 XHS_COOKIE——这一不一致带来打包/信息风险,用户可能未意识到必须提供该敏感 Cookie。代码未索取任何其他无关凭据。
持久化与权限
该技能并非始终启用,也不会请求提升权限或系统级持久化。它不修改其他技能或全局代理设置,仅在用户调用时本地运行。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/4/23

在 v1.0.0 与 v1.0.1 之间未检测到文件变更。——此版本未进行任何更新或修改。

无害

安装命令

点击复制
官方npx clawhub@latest install huo15-xiaohongshu
镜像加速npx clawhub@latest install huo15-xiaohongshu --registry https://cn.longxiaskill.com

技能文档

给个人号 / 小团队做"选题调研、同行分析",不是批量搬运 — 青岛火一五信息科技有限公司

---

一、核心能力

  • 抓取(浏览器 Cookie 登录态)
- 单篇笔记详情(scrape-note.py) - 用户主页基本信息 + 最近笔记预览(scrape-user.py) - 关键词搜索结果首页(scrape-search.py
  • 离线分析analyze-notes.py
- 互动概览:均值 / 中位数 / P90 / 最高 - 爆款 Top 10 笔记 - Top 30 关键词(有 jiebajieba,没有退化为按标点切) - Top 30 话题标签 - 星期 × 小时 发布时段热力 - 最佳发文时段(按中位互动排序) - 爆款 vs 普通的差异(标题长度、图片数、话题数、正文长度)
  • 安全自检safety_check.py):抓前先跑一遍,确认 Cookie、风控状态、节奏。

---

二、防封号原则(很重要,先读)

小红书的风控比想象中严格。违反任何一条都可能导致账号被限流、封禁或要求验证。
  • 用自己的 Cookie。脚本不做登录自动化 — 输密码 / 刷验证码都会立刻被识别。
在浏览器正常登录后,打开 DevTools → Application → Cookies → 复制整个字符串。
  • 不共享 Cookie。不同账号千万别混用同一台设备的 Cookie,否则会被判定为"同一人操作多号"。
  • 节奏第一。脚本默认每次请求随机 3~7 秒延时,单会话 30 次封顶;
不要把 min_delay 调到 0 或 1,省的那点时间还不够补一个账号。
  • 两次会话间隔 10~30 分钟。连续跑会触发时间维度的风控。
  • 日请求不超过 100 次。个人号调研 100 次足够了,如果真的超过请换时段。
  • 不自动执行写操作。脚本里完全没有发帖 / 点赞 / 关注 / 评论接口,也请不要自己加上。
  • 风控即退出。遇到 460 / 461 / 403 / "captcha" / "验证" / 重定向登录,立即停止
到浏览器里完成一次正常浏览 + 验证操作,等至少 30 分钟再试。
  • 不翻页批量抓。搜索只拉第一页;用户主页也只拿默认的 preview 列表,
想批量看历史贴子请用浏览器手动翻(没有办法,这是风控边界)。

---

三、准备工作

3.1 安装依赖

``bash pip install requests pip install jieba pandas # 可选,分析更准 `

3.2 获取 Cookie(3 分钟)

  • 用 Chrome / Edge 打开 https://www.xiaohongshu.com ,正常登录;
  • F12 → Application(Chrome)→ Cookies → 选 https://www.xiaohongshu.com
  • 全选复制,拼成 name1=value1; name2=value2; ... 的字符串(或用 Cookie 扩展一键导出);
  • 关键字段应包含 web_sessiona1webIdxsecappid
  • 导出到环境变量:
`bash export XHS_COOKIE='web_session=...; a1=...; webId=...; xsecappid=xhs-pc-web; ...' `

3.3 先自检

`bash python3 scripts/safety_check.py ` 应当看到 ✓ __INITIAL_STATE__ 解析成功;否则先别跑抓取,检查 Cookie 是否过期或被风控。

---

四、命令行速查

4.1 单篇笔记

`bash python3 scripts/scrape-note.py \ --url "https://www.xiaohongshu.com/explore/64abc...?xsec_token=xxx" \ --out /tmp/note.json # 或 python3 scripts/scrape-note.py --note-id 64abc... --out /tmp/note.json `

4.2 用户主页

`bash python3 scripts/scrape-user.py \ --url "https://www.xiaohongshu.com/user/profile/5f123..." \ --out /tmp/user.json `

4.3 搜索关键词

`bash python3 scripts/scrape-search.py --keyword 秋冬护肤 --out /tmp/search.json `

4.4 离线分析

数据集格式:JSON 数组或 JSONL,每条是
scrape-note.py 输出的结构。 `bash # 合并多篇笔记为一个 JSONL for id in 64abc 64abd 64abe; do python3 scripts/scrape-note.py --note-id $id >> notes.jsonl done

# 分析(默认输出 Markdown 报告) python3 scripts/analyze-notes.py --input notes.jsonl --out report.md

# 输出完整 JSON python3 scripts/analyze-notes.py --input notes.jsonl --format json --out report.json ` 样例数据:examples/sample_notes.jsonl(5 条,可直接 analyze 跑通)。

---

五、Python API

`python import sys; sys.path.insert(0, 'scripts') from xhs_client import XHSClient, load_cookie_from_env from xhs_parser import parse_note_page, note_to_dict from xhs_analyzer import load_notes, full_report, report_to_markdown

# 抓 client = XHSClient(cookie=load_cookie_from_env(), min_delay=4, max_delay=9) html = client.get_explore_page(note_id="64abc...", xsec_token="xxx") note = parse_note_page(html, note_id="64abc...") print(note.title, note.interactions.liked_count)

# 分析 notes = load_notes("notes.jsonl") report = full_report(notes) print(report_to_markdown(report)) ` 主要接口: | 模块 | 函数 | 说明 | |------|------|------| | xhs_client | XHSClient(cookie, min_delay, max_delay, max_requests_per_session) | HTTP 层,带节流 + 风控检测 | | xhs_client | client.get_explore_page(note_id, xsec_token) | 拉单篇笔记 HTML | | xhs_client | client.get_user_page(user_id) | 拉用户主页 HTML | | xhs_client | client.get_search_page(keyword) | 拉搜索页 HTML | | xhs_client | client.cool_down(minutes) | 主动冷却(多次任务之间用) | | xhs_parser | parse_note_page(html, note_id) -> Note | HTML → 结构化笔记 | | xhs_parser | parse_user_page(html) -> UserProfile | HTML → 用户资料 | | xhs_parser | parse_search_page(html) -> List[dict] | HTML → 搜索结果 | | xhs_analyzer | load_notes(path) | 加载 JSON / JSONL | | xhs_analyzer | full_report(notes) | 一次性跑所有分析 | | xhs_analyzer | report_to_markdown(report) | 报告 → Markdown | | xhs_analyzer | engagement_summary(notes) | 互动摘要 | | xhs_analyzer | top_notes(notes, n) | Top N 爆款 | | xhs_analyzer | keyword_frequency(notes) | 关键词 Top 30 | | xhs_analyzer | tag_frequency(notes) | 话题 Top 30 | | xhs_analyzer | posting_time_heatmap(notes) | 周 × 小时热力 | | xhs_analyzer | best_posting_windows(notes, n) | 最佳发文时段 | | xhs_analyzer | viral_pattern(notes) | 爆款 vs 普通对比 |

---

六、数据结构

`python # xhs_parser.Note Note( note_id, title, content, note_type, images: ``

数据来源ClawHub ↗ · 中文优化:龙虾技能库