NT

newbietan/taobao-search-skill

开发工具
22 stars 质量 55 趋势 27

适用于AI Agent的skill,用于淘宝自动挑选符合要求的商品并自动加入到购物车。

概览

—— 用户只需描述需求,AI 理解意图后通过 JSON 命令操控浏览器完成搜索、筛选、选规格、加购全流程。浏览器常驻,命令实时响应。 浏览器只启动一次,AI 通过 stdin/stdout JSON 协议发送命令、接收结果。命令间共享同一浏览器实例,无需反复启动。 - — 浏览器常驻,通过 stdin/stdout JSON 协议通信,命令间零启动开销 - — AI 分析结构化 JSON 数据做决策,截图仅在异常排查时使用 - — 一次命令选择多个规格(芯片+内存+硬盘),脚本内部依次执行 - — AI 用正则匹配标题中的"官换""翻新""后封""二手"等风险词 - — 首次人工登录后自动保存 cookies,后续运行跳过登录 - — playwright-stealth 注入反检测补丁,贝塞尔曲线鼠标轨迹、随机打字延迟、分段滚动 - — ddddocr ML 模型 + OpenCV Canny 边缘检测双引擎,支持 GeeTest v3/v4 然后将 SKILL.md 复制到平台 skill 加载路径(Claude Code → .claude/skills/taobao-search.md),并在权限配置中允许执行 python scripts/taobao.py 及其子命令。 - "帮我在淘宝上挑选6000元以下的MacBook Air M4芯片版本,16+512,13寸或者15寸屏幕都可以" - "找便宜的蓝牙耳机,100以内包邮" - "天猫上找索尼耳机,付款人数超1000" - Python 3.11+ - Playwright Chromium - 依赖:playwright>=1.45、playwright-stealth>=2.0、ddddocr>=1.4、opencv-python>=4.8、numpy>=1.24

README

AI Agent 替你逛淘宝 —— 用户只需描述需求,AI 理解意图后通过 JSON 命令操控浏览器完成搜索、筛选、选规格、加购全流程。浏览器常驻,命令实时响应。

适用于 Claude Code、Cursor、Copilot 等 AI Agent 工具。

架构

flowchart TB
    subgraph Brain["AI Agent (决策者) — SKILL.md v4 指导"]
        direction TB
        B1["理解用户意图 → 拆解任务"]
        B2["分析 JSON 数据(商品/价格/SKU)"]
        B3["决策:选哪个商品 / 选哪个SKU / 是否加购"]
        B4["风险识别:官换/翻新/低价异常"]
        B5["异常恢复:弹窗/验证码/加载失败"]
        B6["向用户汇报结果"]
    end

    subgraph Session["session 进程 (执行者)"]
        direction TB
        H1["浏览器常驻 — 只启动一次"]
        H2["stdin 接收 JSON 命令"]
        H3["执行:搜索/导航/点击/选择/截图"]
        H4["stdout 返回 JSON 结果"]
        H5["反检测拟人化 + 验证码自动求解"]
        H6["会话持久化(cookies)"]
    end

    User["用户 · 描述需求"]

    User -->|"自然语言"| Brain
    Brain -->|"JSON 命令"| Session
    Session -->|"JSON 结果 + 截图"| Brain
    Brain -->|"汇报结果"| User

核心思想: 浏览器只启动一次,AI 通过 stdin/stdout JSON 协议发送命令、接收结果。命令间共享同一浏览器实例,无需反复启动。

Session 协议

# 启动会话(浏览器打开一次)
python scripts/taobao.py session --task-id my-task

# 通过 stdin 发送命令,stdout 接收 JSON 结果
→ {"cmd": "search", "keyword": "MacBook Air M4", "price_max": 6000}
← {"status": "success", "data": {"items": [...], "items_count": 8}}

→ {"cmd": "open", "index": 0}
← {"status": "success", "data": {"sku_groups": [...], "detail_price": 5499}}

→ {"cmd": "select-sku", "selections": [{"label":"芯片","value":"M4"}, {"label":"内存","value":"16G"}]}
← {"status": "success", "data": {"final_price": 5999, "all_selected": true}}

→ {"cmd": "cart-add"}
← {"status": "success", "data": {"cart_added": true, "confirmed": true}}

→ {"cmd": "quit"}

命令集

命令 作用 关键返回数据
search 搜索商品 items[](标题/价格/销量/评分/天猫标识)
open 打开商品详情 sku_groups[](SKU 结构)+ detail_price
select-sku 选择 SKU 规格(支持批量) final_price + selections[](选择结果)
cart-add 加入购物车 cart_added + confirmed
cart-view 查看购物车 cart_item_count + items[]
dom 提取页面 DOM 结构 dom.elements[](按钮/链接/SKU 选项)
screenshot 截取当前页面 截图路径 + 页面文本
quit 关闭浏览器退出 —

决策归属

决策点 归属 依据
选择哪个商品 AI JSON 数据(价格/销量/评分/天猫标识)
选择哪个 SKU AI sku_groups 结构化数据
价格是否在预算内 AI final_price 数值
是否跳过风险商品 AI 标题正则匹配(官换/翻新/后封/二手)
异常处理 AI 错误码 + 截图排查
浏览器操控 session 进程 纯执行
反检测/验证码 session 进程 纯算法

功能

  • Session 模式 — 浏览器常驻,通过 stdin/stdout JSON 协议通信,命令间零启动开销
  • AI 决策驱动 — AI 分析结构化 JSON 数据做决策,截图仅在异常排查时使用
  • 批量 SKU 选择 — 一次命令选择多个规格(芯片+内存+硬盘),脚本内部依次执行
  • 风险识别 — AI 用正则匹配标题中的"官换"“翻新”“后封”"二手"等风险词
  • 会话持久化 — 首次人工登录后自动保存 cookies,后续运行跳过登录
  • 反检测拟人化 — playwright-stealth 注入反检测补丁,贝塞尔曲线鼠标轨迹、随机打字延迟、分段滚动
  • 验证码自动求解 — ddddocr ML 模型 + OpenCV Canny 边缘检测双引擎,支持 GeeTest v3/v4

安装

pip install -r requirements.txt
python -m playwright install chromium

然后将 SKILL.md 复制到平台 skill 加载路径(Claude Code → .claude/skills/taobao-search.md),并在权限配置中允许执行 python scripts/taobao.py 及其子命令。

{
  "permissions": {
    "allow": [
      "python scripts/taobao.py session *",
      "python scripts/taobao.py check-session",
      "python scripts/taobao.py clear-session"
    ]
  }
}

使用

通过 AI Agent(推荐)

用自然语言描述需求,Agent 自动完成搜索→筛选→选规格→加购全流程:

  • “帮我在淘宝上挑选6000元以下的MacBook Air M4芯片版本,16+512,13寸或者15寸屏幕都可以”
  • “找便宜的蓝牙耳机,100以内包邮”
  • “天猫上找索尼耳机,付款人数超1000”

CLI

# 启动持久会话(浏览器常驻,通过 stdin 发送 JSON 命令)
python scripts/taobao.py session --task-id my-task

# 会话管理
python scripts/taobao.py check-session
python scripts/taobao.py clear-session

工作流示例

用户:"帮我找6000以下MacBook Air M4 16+512"

AI 操作序列:

1. 启动会话
   python scripts/taobao.py session --task-id macbook

2. 搜索
   → {"cmd":"search","keyword":"MacBook Air M4 16G 512G","price_max":6000}
   ← 8 个候选商品(含标题/价格/销量/评分/天猫标识)

3. 打开第 0 个(¥5499,天猫,好评 98%)
   → {"cmd":"open","index":0}
   ← SKU 结构:芯片(M4/M3) + 内存(16G/24G) + 硬盘(256G/512G/1T)

4. 批量选择规格
   → {"cmd":"select-sku","selections":[
       {"label":"芯片","value":"M4"},
       {"label":"内存","value":"16G"},
       {"label":"硬盘","value":"512G"}
     ]}
   ← final_price: 5999, all_selected: true
   判断:5999 < 6000 ✓

5. 加购
   → {"cmd":"cart-add"}
   ← cart_added: true, confirmed: true

6. 退出
   → {"cmd":"quit"}

汇报:✅ 已加购 MacBook Air M4 16G+512G — ¥5,999 — 天猫 — 好评 98% — 包邮

项目结构

SKILL.md                          # Agent 行为指令集 v4(Session 模式协议 + 命令参考 + 决策框架)
scripts/
├── taobao.py                     # CLI 入口(session/check-session/clear-session)
├── browser_adapter.py            # 浏览器自动化(搜索/导航/点击/SKU选择/截图/DOM提取/反检测)
├── taobao_selectors.py           # 集中化 DOM 选择器
├── slider_solver.py              # 验证码求解器(ddddocr + OpenCV 双引擎)
├── session_manager.py            # 会话文件 I/O(cookies 持久化)
├── session_flow.py               # 会话恢复/捕获编排
├── config.py                     # 配置解析
└── models.py                     # 数据模型(MatchedItem/VisualState 等)
tests/
├── test_config.py                # 配置解析测试
├── test_models.py                # 数据模型测试
└── test_text_extraction.py       # 文本提取测试(价格/销量/好评率正则)
.cache/taobao-search-skill/       # 会话缓存 + 截图(自动创建,已 gitignore)

环境要求

  • Python 3.11+
  • Playwright Chromium
  • 依赖:playwright>=1.45、playwright-stealth>=2.0、ddddocr>=1.4、opencv-python>=4.8、numpy>=1.24

License

MIT

在 GitHub 查看完整 README

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add newbietan/taobao-search-skill
新手?先看 mcpskill.org 教程 →