🐾 XHS Expert - 小红书运营专家技能
基于 content-discovery-sdk 蓝图重构,修复所有已知bug,完全可运行
技能能力
| 能力 | 说明 | 命令 |
|---|---|---|
| 内容发现 | 搜索笔记、获取详情、整理评论 | xhs explore search |
| 社交互动 | 点赞、收藏、评论、关注 | xhs interact like/collect/comment/follow |
| 批量操作 | 批量点赞、批量评论 | xhs interact batch-like |
| 账号管理 | 登录、状态检查 | xhs auth status/login |
| 数据查询 | 本地数据统计 | xhs data stats |
架构
用户输入 → SKILL路由 → CLI命令 → Python模块 → 小红书API
↓
Cookie持久化核心模块
| 模块 | 职责 |
|---|---|
xhs_client.py | API客户端、签名算法、Cookie管理 |
state_parser.py | __INITIAL_STATE__解析、笔记/评论建模 |
feed_collector.py | 搜索整理、详情整理、评论整理 |
interaction_handler.py | 点赞、收藏、评论、关注 |
chrome_launcher.py | 浏览器启动、Stealth注入 |
cookie_manager.py | Cookie持久化、多账号切换 |
CLI命令
认证管理
# 检查登录状态
xhs auth status
# 浏览器扫码登录
xhs auth login --profile default内容发现
# 搜索笔记
xhs explore search --keyword "电动车" --max 20 --sort general
# 获取笔记详情
xhs explore detail --note-id <note_id> --include-comments
# 输出到文件
xhs explore search --keyword "电动车" --output results.json社交互动
# 点赞
xhs interact like --note-id <note_id>
# 取消点赞
xhs interact like --note-id <note_id> --action remove
# 收藏
xhs interact collect --note-id <note_id>
# 评论
xhs interact comment --note-id <note_id> --content "写得真好!"
# 关注用户
xhs interact follow --user-id <user_id>
# 批量点赞
xhs interact batch-like --note-ids "id1,id2,id3" --delay 2.0数据查询
# 本地数据统计
xhs data stats意图路由
| 用户输入 | 路由 | CLI命令 |
|---|---|---|
| "搜索电动车相关笔记" | xhs-explore | explore search -k 电动车 |
| "这篇笔记讲了什么" | xhs-explore | explore detail -n <id> |
| "给我点个赞" | xhs-interact | interact like -n <id> |
| "写个评论" | xhs-interact | interact comment -n <id> -c <content> |
| "关注这个博主" | xhs-interact | interact follow -u <user_id> |
| "批量点赞" | xhs-interact | interact batch-like -n <ids> |
| "登录状态" | xhs-auth | auth status |
执行流程
1. 搜索笔记
用户: "搜索电动车相关笔记"
↓
识别意图: explore (内容发现)
↓
确认参数: keyword="电动车", max=20
↓
执行: xhs explore search -k 电动车 -m 20
↓
返回: 笔记列表 + 摘要统计2. 批量互动
用户: "给这10篇笔记点赞"
↓
识别意图: interact (互动操作)
↓
确认参数: note_ids=[...], action="add"
↓
[强制确认] 显示目标范围,等待用户回复"确认"
↓
执行: xhs interact batch-like -n "id1,id2,..." --delay 2.0
↓
返回: 操作结果汇总安全约束
执行前检查
- 已确认操作目标(笔记ID/用户ID)
- 已确认登录状态(
xhs auth status) - 已确认批量操作范围
强制确认(必须用户明确回复"确认")
- 发表评论 - 显示评论内容,等待确认
- 批量互动 (>5) - 显示目标范围,等待确认
- 关注用户 - 显示用户信息,等待确认
禁止事项
- 禁止使用通用浏览器技能(如browseruse)操作小红书
- 禁止硬编码选择器 - 必须使用
__INITIAL_STATE__解析 - 禁止跳过登录检查 - 所有操作前验证登录态
- 禁止静默失败 - 任何错误必须给出可操作的提示
常见问题
Q: 被检测/签名失败怎么办?
签名算法是反爬核心,当前SDK使用简化版SHA256签名。 生产环境建议:
- 使用浏览器模式(
auth login)获取真实Cookie - 使用Selenium注入真实签名
- 降低请求频率
Q: 如何处理验证码?
触发验证时,提示用户手动在浏览器完成验证,然后重试。
Q: Cookie过期了怎么办?
运行 xhs auth login 重新扫码登录。
技术栈
| 组件 | 技术选型 |
|---|---|
| HTTP客户端 | httpx (异步) |
| 浏览器 | Playwright (CDP + Stealth) |
| CLI框架 | Click |
| 数据建模 | dataclass |
验证清单
xhs auth status返回正确登录状态xhs explore search返回结构化笔记列表xhs explore detail返回笔记详情和评论xhs interact like成功点赞xhs interact comment成功评论xhs interact batch-like批量操作正常
项目结构
~/.openclaw/workspace/skills/xhs-expert/
├── SKILL.md # 本文件(主路由)
├── scripts/
│ ├── __init__.py
│ ├── chrome_launcher.py # Chrome启动器
│ ├── xhs_client.py # API客户端
│ ├── state_parser.py # __INITIAL_STATE__解析
│ ├── feed_collector.py # 内容整理器
│ ├── interaction_handler.py # 互动处理器
│ ├── cookie_manager.py # Cookie管理器
│ └── cli.py # CLI入口
└── pyproject.toml下一步
遇到具体任务时:
- 确认用户意图(搜索/互动/批量操作)
- 检查登录状态
- 执行对应CLI命令
- 返回结构化结果
*🐾 Built from content-discovery-sdk blueprint (v1.0.0)* *Fixes: playwright._impl deprecation, async syntax errors, Click param mapping*