Xhs Skill
小红书(创作者中心)登录拿 cookies、发布笔记、导出数据的单一入口技能(浏览器交互委托 agent-browser-stealth)
小红书(创作者中心)登录拿 cookies、发布笔记、导出数据的单一入口技能(浏览器交互委托 agent-browser-stealth)
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
本技能是
xhs-* 的合并版,目标是让用户只需要 clawhub install xhs-skill 一次即可开始使用。
约束:
agent-browser-stealth。publish_from_payload);发布动作必须在会话中由 agent-browser-stealth 执行。agent-browser(旧通道禁用,统一使用 agent-browser-stealth)。data/ 目录,不要粘贴到聊天里。执行硬约束(稳定性):
agent-browser-stealth session 禁止并发操作(串行执行),否则容易触发 os error 35 假失败。snapshot 的 ref 会漂移:关键动作前后必须重抓 snapshot -i,并用 placeholder/role/text 做二次定位兜底。clawhub install xhs-skill cd skills/xhs-skill npm i
说明:
npm i 仅用于本技能自带的本地 CLI(二维码解码、cookies 工具)。如果你不需要解码二维码/转换 cookies,也可以只用 agent-browser-stealth 完成扫码与导出。
建议在你运行命令的工作目录下准备:
data/xhs_login_qr.png:登录页二维码截图(PNG)data/raw_cookies.json:导出的原始 cookies(JSON)data/xhs_cookies.json:归一化后的 cookies(JSON)data/exports/<YYYY-MM-DD>/:导出数据(CSV/XLSX/截图)data/assets/<YYYY-MM-DD>/:发布笔记用的图标/配图素材与来源记录mkdir -p data
目标:登录小红书创作者中心并导出 cookies,避免频繁重复登录。
agent-browser-stealth 打开登录页:https://creator.xiaohongshu.com/login让
agent-browser-stealth 截图保存二维码(PNG)到 data/xhs_login_qr.png
(可选)用本地 CLI 解码二维码文本并打印 ASCII 二维码:
node ./bin/xhs-skill.mjs qr show --in ./data/xhs_login_qr.png
OpenClaw 回传规范(强制):
data/xhs_login_qr.png)。node ./bin/xhs-skill.mjs qr show --in ./data/xhs_login_qr.png,然后把输出的二维码文本 + ASCII 二维码直接发给用户。推荐回传模板:
请用小红书 App 扫这个二维码登录。 二维码文本: <qr_text> <ASCII QR>
data/raw_cookies.json(不走 DevTools):agent-browser-stealth cookies --json > ./data/raw_cookies.json
data/xhs_cookies.json:node ./bin/xhs-skill.mjs cookies normalize --in ./data/raw_cookies.json --out ./data/xhs_cookies.json node ./bin/xhs-skill.mjs cookies status --in ./data/xhs_cookies.json
5.1 推荐用脚本做后验校验(可执行门禁):
# 例:先让 agent-browser-stealth 记录当前 URL 与后台探测后的 URL CURRENT_URL="$(agent-browser-stealth get url)" agent-browser-stealth open https://creator.xiaohongshu.com/creator/home PROBE_FINAL_URL="$(agent-browser-stealth get url)"node ./scripts/verify_login.mjs
--cookies ./data/xhs_cookies.json
--current-url "$CURRENT_URL"
--probe-final-url "$PROBE_FINAL_URL"
--json
登录成功判定(强制):
web_session 不再作为硬依赖):/loginweb_session,或 cookie 名含 session)。没有也可能可用,但稳定性更差。登录结果输出契约(JSON):
{ "task": "xhs_login", "ok": true, "checks": { "left_login": true, "backend_not_rejected": true, "has_session_like_cookie": true }, "artifacts": { "qr_png": "data/xhs_login_qr.png", "raw_cookies": "data/raw_cookies.json", "normalized_cookies": "data/xhs_cookies.json" } }
失败时
ok=false,并给出失败项(例如仍在 /login、或 probe 回跳),禁止输出“已完成”。
Cookie: header:node ./bin/xhs-skill.mjs cookies to-header --in ./data/xhs_cookies.json
失败回退:
agent-browser-stealth 放大后重新截图(仍为 PNG)。data/raw_cookies.json,后续再扩展兼容分支。核心结论:小红书风控主要看“节奏 + 指纹 + 行为 + IP + 账号权重”。工具本身不是主因,使用方式才是主因。
强制策略:
1.2s~7s)。type --delay(逐字),避免全量瞬时 fill。--profile,并启用 --headed。24h <= 3 篇。30 分钟。3~7 天。profile + IP + 设备环境。输入(用户提供):
YYYY-MM-DD)发布硬门禁(强制):
data/publish_payload.json(示例):{ "topic": "今日热点:xxxx", "source": { "name": "央视新闻", "url": "https://example.com/news", "date": "2026-02-12", "evidence_snippet": "2月12日该媒体报道提到:......", "key_facts": ["关键事实1(含日期/数字)", "关键事实2(含日期/数字)"] }, "post": { "title": "20字内标题示例", "body": "不少于 80 字的正文......", "tags": ["#热点", "#今日新闻", "#小红书运营"], "real_topics": ["#人工智能", "#AI资讯", "#科技观察"], "media": ["/abs/path/cover.png", "/abs/path/card_1.png"] } }
# 普通模式 node ./scripts/verify_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on --json今天热点模式(强制 source.date = 今天)
node ./scripts/verify_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on --mode hot --json
node ./scripts/review_publish_payload.mjs --in ./data/publish_payload.json --policy ./config/review_policy.json --taxonomy ./config/review_taxonomy.json --ai-provider auto --require-ai off --mode hot --json
ok=true 才允许进入发布页点击“发布/提交”。
校验策略在 ./config/verify_publish_policy.json,审核策略在 ./config/review_policy.json,分层风险路径在 ./config/review_taxonomy.json。禁止链接(强制):
http/https、www.、xxx.com/.cn/...)。否则有封禁风险。反 AI 识别与真实标签(强制):
review_publish_payload 审核门禁,要求 decision=pass,并输出 risk_path、证据和 review_queue 供复核。source.evidence_snippet 与 source.key_facts 必填,且能回溯到来源事实。post.real_topics 都必须来自真实话题池 data/tag_registry.json,禁止自造标签。#标签 拼进正文冒充话题。agent-browser-stealth 执行最终点击发布。示例:准备真实标签池(建议每天更新):
cat > ./data/tag_registry.json <<'JSON' { "updated_at": "2026-02-24", "source": { "platform": "xiaohongshu", "method": "manual_from_publish_topic_picker", "url": "https://creator.xiaohongshu.com/creator/publish" }, "tags": ["#AI热点", "#人工智能", "#行业观察", "#科技新闻", "#AI资讯", "#科技观察"] } JSON
发布执行方式(唯一):
agent-browser-stealth 串行执行:预检 -> 填充 -> 读回校验 -> 发布 -> 回查。verify/review 非 ok=true),必须停止在“发布前”,禁止继续点击提交。P0:发布编排器(流程编排,不是仓库脚本):
https://creator.xiaohongshu.com/publish/publish 进入;禁止把 /creator/* 作为首入口。https://creator.xiaohongshu.com/new/home(“你访问的页面不见了”),立即回到 /publish/publish 重试。published=true;P0:路由与状态稳定性(强制):
/publish/publish;其他页面只作为中转,不作为成功判定依据。P0:选择器双通道(强制):
placeholder + role + 可见性 + 附近文案)。tiptap/ProseMirror 语义类名)。snapshot ref 或 @e1/@e2 序号;每个关键动作前后都要 snapshot -i 二次确认。P0:写入可靠性(强制):
contenteditable、可见、可编辑、placeholder/附近文本命中“正文/内容”语义。title_len 与 body_len。title_len > 20 且 body_len < 80,或标题命中长段正文特征(大量换行/句号),判定为写入错位。# 标签、长段正文、链接;标签必须通过小红书发布页“标签/话题交互”选择,不把标签文本塞进标题。P0:草稿确认闭环(强制):
title/body/media/tags 仍满足门禁。P0:图片预处理(无脚本版):
1242x1660(3:4 竖版)。# macOS: 先居中裁剪再缩放到 1242x1660(按需替换输入输出路径) sips -c 1660 1242 ./data/assets/in.png --out ./data/assets/out_1242x1660.png
P0:发布前硬校验(强制):
<= 20。>= 80。>= 3(通过小红书话题交互选择,不是正文拼接)。http、https、www.、域名形态)。P0:发布后双重确认(强制):
published=true。run_log 并提示人工复核。P1:热点到 payload 半自动(无脚本版):
newsnow -> payload 代码生成器;改为会话模板填充。data/publish_payload.json,人工只改“观点段”:{ "topic": "今日热点:<主题>", "source": { "name": "<来源名>", "url": "<来源URL>", "date": "YYYY-MM-DD", "evidence_snippet": "<原文证据摘录>", "key_facts": ["<事实1:含日期/数字>", "<事实2:含日期/数字>"] }, "post": { "title": "<8-20字标题,不含标签>", "body": "<观点段+事实段,不少于80字>", "tags": ["#标签1", "#标签2", "#标签3"], "real_topics": ["#真实话题1", "#真实话题2", "#真实话题3"], "media": ["/abs/path/1.png"] } }
P1:标签/话题池维护(无脚本版):
data/tag_registry.json(从小红书发布页话题选择器抄录)。tags 与 real_topics 都必须命中 tag_registry。P1:流程可观测(无脚本版):
data/run_log/<YYYY-MM-DD_HH-mm-ss>.json(手工写文件即可,不新增脚本)。steps、durations_ms、failed_step、error_message、screenshots、result_url、draft_check、editor_check、route_check、post_publish_check。P1:固定模板(强烈建议):
[主题词]+[观点/结论],目标 12开场观点 -> 事实1 -> 事实2 -> 个人判断 -> 行动建议,默认 >120 字。data/tag_registry.json 选取,避免临场造词导致门禁失败。P2:回归用例(每日 smoke,手工执行):
run_log,用于对比“定位稳定性/错位率”。流程(浏览器侧全部由
agent-browser-stealth 完成):
data/publish_payload.json(必须 ok=true)。https://creator.xiaohongshu.com/publish/publish,先 snapshot -i 获取最新结构。published=true + 菜单进入笔记管理二次查验),并写入 run_log。发布结果输出契约(JSON):
{ "task": "xhs_publish", "ok": true, "result_url": "https://creator.xiaohongshu.com/....", "content_checks": { "title_len": 18, "body_len": 136, "tag_count": 3, "real_topic_count": 3, "editor_alignment_ok": true, "draft_saved_ok": true, "publish_precheck_ok": true, "published_param_ok": true, "manage_menu_check_ok": true, "topic": "今日热点:xxxx", "source_date": "2026-02-12" }, "artifacts": { "payload_json": "data/publish_payload.json", "media_inputs": ["..."], "run_log_json": "data/run_log/2026-02-27_14-36-00.json", "error_screenshot": null } }
发布失败时
ok=false,并返回 error_message、error_screenshot 路径、未通过的 missing_checks 与 failed_stage(preflight/fill/readback/publish/postcheck)。
目标:把创作者中心关键数据导出到
data/exports/<YYYY-MM-DD>/,用于后续分析。
agent-browser-stealth 进入创作者中心的常用分析页(仪表盘/内容分析/粉丝分析)。data/exports/<date>/命令:
node ./bin/xhs-skill.mjs qr show --in <pngPath>node ./bin/xhs-skill.mjs cookies normalize --in <jsonPath> --out <outPath>node ./bin/xhs-skill.mjs cookies status --in <cookiesJsonPath>node ./bin/xhs-skill.mjs cookies to-header --in <cookiesJsonPath>node ./scripts/verify_publish_payload.mjs --in <payloadJsonPath> --policy ./config/verify_publish_policy.json --tag-registry ./data/tag_registry.json --min-registry-tags 12 --require-source-evidence on --strict-anti-ai on [--mode hot]node ./scripts/review_publish_payload.mjs --in <payloadJsonPath> --policy ./config/review_policy.json --taxonomy ./config/review_taxonomy.json --ai-provider auto --require-ai off [--mode hot]npm run check:constraintsnpm testgit status --shortdocs(skill): 补充发版前快速自检清单clawhub sync --all --bump patch --changelog "docs: 补充发版前快速自检清单"No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.