Skip to main content

xiaohongshu

小红书自动化技能。通过 Ethan 浏览器工具操作小红书:搜索笔记、查看详情、发布内容、社交互动。 使用 eval JS 直接提取数据,搜索用 URL 直跳,详情从搜索卡片提取带 xsec_token 的链接后直接打开。

الانتقال إلى التثبيت

معلومات المصدر

المستودع
llm011/ethan-agent
آخر نشاط في المصدر
٣١ يوليو ٢٠٢٦ في ١٦:١٦
لغة SKILL.md المكتشفة
الصينية
النجوم
٨
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
34 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
xiaohongshu
title
小红书自动化
description
小红书自动化技能。通过 Ethan 浏览器工具操作小红书:搜索笔记、查看详情、发布内容、社交互动。 使用 eval JS 直接提取数据,搜索用 URL 直跳,详情从搜索卡片提取带 xsec_token 的链接后直接打开。
version
2.3.0
author
Ethan
platforms
["linux","macos"]
trigger
["小红书","xiaohongshu","红薯","xhs","在小红书搜","小红书找","发小红书","小红书发布","小红书登录","小红书点赞","小红书评论","小红书收藏"]
license
MIT
source
internal (hermes agent) + Python CDP engine (upstream unclear)
# 小红书自动化 通过 Ethan 浏览器工具(browser_session / browser_tab / browser_page)操作小红书。核心原则: - **eval JS 提取数据**:不用 snapshot(DOM 复杂、ref 易 detach),直接执行 JS 提取结构化数据 - **搜索用 URL 直跳**:搜索用拼 URL 跳转,不打开首页再输入 - **详情必须点击进入**:小红书有 xsec_token 反爬,直接打开帖子 URL 会 404,必须在搜索/列表页通过 JS click 卡片进入 - **操作间隔**:每步之间 wait 2-3 秒,避免反爬 - **禁用 snapshot**:不要用 `action=snapshot`,只用 `action=eval` 执行 JS ## 前置条件 - Chrome 中已登录小红书(未登录时搜索受限) - 浏览器工具可用(需先 `browser_session` action=attach_current) ## 意图路由 根据用户意图读取对应 reference 获取详细操作步骤: | 意图 | 对应 reference | |------|----------------| | 搜索笔记、查看详情、首页推荐、用户主页 | `references/xhs-explore.md` | | 发布图文、视频 | `references/xhs-publish.md` | | 评论、回复、点赞、收藏 | `references/xhs-interact.md` | | 竞品分析、热点追踪、批量运营 | `references/xhs-content-ops.md` | ## 核心操作速查 ### 搜索笔记(5 步) 1. `browser_session` action=attach_current 2. `browser_tab` action=open → `https://www.xiaohongshu.com/search_result?keyword={encodeURIComponent(关键词)}&source=web_search_source_normal` 3. `browser_page` action=wait, ms=3000 4. `browser_page` action=eval → JS 提取搜索结果(标题、作者、点赞数,**以及带 xsec_token 的详情链接 detailUrl**) 5. 返回结构化结果 ### 查看详情(提取带 token 链接后直接打开,5 步) ⚠️ **不要点击卡片**:卡片可见的 `/explore/{id}` 链接 `display:none`、靠自定义 handler,点击极易失败打转。 ⚠️ **不要凭 note-id 自己拼无 token 的 URL**(会 404)。正解是用卡片里 `.cover` 那个**带 xsec_token** 的链接。 1. 从搜索结果里取目标笔记的 `detailUrl`(已含 xsec_token,见 `references/xhs-explore.md`) 2. `browser_tab` action=open → `detailUrl`(带 token 直接打开,实测正常,不会 404) 3. `browser_page` action=wait, ms=3000 4. `browser_page` action=eval → JS 提取正文/图片/标签/点赞收藏评论数 5. 看下一篇:关掉当前详情 tab 或直接 open 下一个 `detailUrl`,**不要 history.back 回搜索页再点** 6. 某篇打不开 / 某字段抓不到 → 标 `N/A` 跳过,**不在同一篇上反复重试** ### 点赞/收藏(3 步) 1. 在详情页 `browser_page` action=eval → JS 找到按钮并 click 2. `browser_page` action=wait, ms=1000 3. 确认状态变化 ## Python CDP 引擎(可选后端) 本技能额外内置一个基于 Python + Chrome DevTools Protocol 的独立 CLI 工程位于 `scripts/cdp_engine/`。它通过直连 CDP 调试端口操作 Chrome,不依赖 Ethan 浏览器工具,可在 headless、批量、远程场景下使用。 ### 何时用 CDP 引擎 - **批量/高速场景**:一次拉几十上百条搜索结果、批量下载封面图、批量发布多篇 - **headless / 服务器端**:无 GUI 环境(如 macmini 后台任务),脚本无人值守 - **需要稳定 JSON 输出**:CDP 引擎所有子命令统一返回结构化 JSON,便于后续脚本串联 - **远程 CDP**:可通过 `--host/--port` 连接远程已调试 Chrome ### 何时用浏览器工具(默认后端) - **已登录 Chrome**:用户当前 Chrome 已扫码登录小红书,复用 session 即可 - **单次操作 / 可视化交互**:发布笔记时需人工确认内容、查看页面状态 - **快速验证**:搜索一两篇、看个详情、给一条评论点赞 - **需要截图给用户**:`browser_page` action=screenshot ### 调用方式 所有 CDP 引擎子命令均通过 `uv` 运行,工作目录为本 skill 根目录: ```bash uv run --project scripts/cdp_engine scripts/cdp_engine/cli.py <subcommand> [options] ``` 首次运行 `uv` 会自动按 `scripts/cdp_engine/pyproject.toml`(依赖 `requests>=2.28.0`、`websockets>=12.0`)创建隔离环境,无需手动 `pip install`。 ### 子命令速查 | 场景 | 子命令 | |------|--------| | 登录态检查 | `check-login` | | 扫码登录 | `get-qrcode` → 展示 → `wait-login` | | 短信登录 | `send-code --phone <号码>` → `verify-code --code <验证码>` | | 首页推荐 | `list-feeds` | | 搜索笔记 | `search-feeds --keyword <词> [--sort-by 最多点赞/最新/最多评论/最多收藏]` | | 笔记详情 | `get-feed-detail --feed-id <ID> --xsec-token <Token>` | | 用户资料 | `user-profile --user-id <ID> --xsec-token <Token>` | | 填装发布 | `fill-publish --title-file <路径> --content-file <路径> --images <绝对路径/URL>` | | 一键发布 | `publish --title-file <路径> --content-file <路径> --images <绝对路径/URL>` | | 视频发布 | `publish-video --title-file <路径> --content-file <路径> --video <绝对路径>` | | 确认发布 | `click-publish` | | 保存草稿 | `save-draft` | 完整参数表见 `references/cli-usage.md`。 ### 全局参数 - `--headless`:使用无头 Chrome(未登录会自动降级到有头模式以便扫码) - `--account <name>`:多账号隔离 - `--host/--port`:连接远程 CDP 调试地址 ### 注意 - CDP 引擎独立维护登录态(cookies 存于本地文件),与浏览器工具的 Chrome session **互不相通**,首次使用需独立扫码 - xsec_token 反爬对 CDP 引擎同样有效:`get-feed-detail` 必须传入从 `search-feeds` 返回的 token,不能凭空捏造 - 发布流程遵循同一铁律:标题 ≤ 20 字、图片/视频路径必须绝对路径 - 若本机未装 `uv`,可参考 https://docs.astral.sh/uv/ 安装 ## 全局约束 - **优先 eval,少用 snapshot**:DOM 复杂且 ref 会 detach,提数据用 `action=eval` - **详情页要带 token 打开**:不要凭 note-id 拼无 token 的裸 URL(会 404);从搜索卡片提取带 `xsec_token` 的 `.cover` 链接后 `browser_tab` open 即可,不需要点击卡片 - **搜索可以 URL 直跳**:搜索页不受 xsec_token 限制 - 图片懒加载:优先取 `img.src`,其次 `data-src` - 出现验证码时用 `browser_page` action=screenshot 截图给用户 - 连续访问 3-4 篇后插入 10-20 秒长等待,避免触发验证 - 创建浏览器会话时用 `browser_session` action=attach_current(连接已有 Chrome),不要用 action=create
عرض على GitHub