内容
# sellersprite-rpa
基于浏览器 RPA + 数据分析的项目,覆盖 **sellersprite.com**(亚马逊卖家分析)。捆绑 5 个核心亚马逊数据分析模块的 skill:产品排行、关键词选品、市场分析、ABA 搜索频率、竞品查询。
每个 skill 是一个独立的 Python 工具,通过 Kimi WebBridge 驱动用户已登录的 sellersprite 会话——无需 API token、无需 Selenium。多站点对比报告从生成的 CSV 自动产出。
> 英文版本见 [README.en.md](README.en.md)。中文为主版本。
## 项目意义
sellersprite 的 UI 功能完备,但跨站点手动分析很繁琐。本项目将其 5 个核心模块封装为可脚本化的抓取器,CLI 形态统一(`--station US,JP,GB --out X.csv`),并配套报告生成器(`analyze.py`),让原本 30 分钟的手工点击变成 30 秒脚本。
5 个 skill 覆盖 sellersprite 的**亚马逊数据分析核心**:
| # | Skill | sellersprite 模块 | 返回内容 |
|---|---|---|---|
| 1 | `sellersprite-products` | 选产品 | 各站点 + 类目下的热销 ASIN |
| 2 | `sellersprite-keywords` | 关键词选品 | 各站点关键词搜索/点击/PPC 数据 |
| 3 | `sellersprite-markets` | 选市场 | 细分市场规模 + 集中度 |
| 4 | `sellersprite-aba` | ABA数据选品 | 亚马逊 Brand Analytics 关键词搜索频率排行 |
| 5 | `sellersprite-competitors` | 查竞品 | 按关键词/品牌/卖家/ASIN 反查竞品 |
外观专利、全球商标库模块**不在范围内**——它们是 IP 查询,不属于亚马逊数据分析。
## 环境要求
- **Kimi WebBridge 守护进程**( https://www.kimi.com/zh-cn/features/webbridge )运行且扩展已连接:
```bash
~/.kimi-webbridge/bin/kimi-webbridge status
# 期望:running: true, extension_connected: true
```
- 同一浏览器 profile 内已**登录 sellersprite**(免费会员可用,付费会员解锁更多页数/数据)
- Python 3.10+(无第三方依赖)
## 快速开始
```bash
# 验证守护进程
~/.kimi-webbridge/bin/kimi-webbridge status
# 任意 skill 单站点抓取
python .claude/skills/<skill>/scripts/fetch_*.py --station US --<query-arg> X --out data/X.csv
# 多站点 + 报告生成
python .claude/skills/<skill>/scripts/fetch_*.py --station US,JP,GB --<query-arg> X \
--out data/by_station.csv
python .claude/skills/<skill>/scripts/analyze.py --<input> data/by_station.csv \
--out-md reports/by_station.md
```
### 各 skill 快速命令
```bash
# 1. 选产品 — 美国站 Top 100 ASIN(5 页 × 20/页)
python .claude/skills/sellersprite-products/scripts/fetch_products.py \
--market US --pages 5 --out data/us_top100.csv
# 2. 关键词选品 — 3 站点 "flashlight" 搜索数据
python .claude/skills/sellersprite-keywords/scripts/fetch_keywords.py \
--station US,JP,GB --keyword flashlight --pages 2 \
--out data/keywords_by_station.csv
# 3. 选市场 — 3 站点 "led" 细分市场
python .claude/skills/sellersprite-markets/scripts/fetch_markets.py \
--station US,JP,GB --keyword led --out data/markets_by_station.csv
# 4. ABA — "yoga mat" 的亚马逊搜索频率排行
python .claude/skills/sellersprite-aba/scripts/fetch_aba.py \
--station US,JP,GB --query "yoga mat" --pages 3 \
--out data/aba_by_station.csv
# 5. 查竞品 — "yoga mat" 关键词反查竞品 ASIN
python .claude/skills/sellersprite-competitors/scripts/fetch_competitors.py \
--station US,JP,GB --keyword "yoga mat" --pages 3 \
--out data/comp_by_station.csv
```
## 架构
每个 skill 采用以下两种模式之一(与姐妹项目 fastmoss-rpa 保持一致):
### API-first(3 个模块)
| Skill | API 端点 | 模式 |
|---|---|---|
| sellersprite-products | `POST /v3/api/product-research` | JSON body,页面上下文 fetch |
| sellersprite-aba | `POST /v3/api/aba-research` | JSON body,页面上下文 fetch |
| sellersprite-competitors | `POST /v3/api/competing-lookup` | JSON body,页面上下文 fetch |
这些 skill 在 sellersprite 页面上下文中通过 `fetch()` + `credentials: "include"` 直接调用 API,自动复用登录 cookie,无 DOM 抓取。
### DOM-scrape(2 个模块)
| Skill | 页面 | 模式 |
|---|---|---|
| sellersprite-keywords | `/v2/keyword-research` | URL 参数 + 站点按钮点击 + 表格抽取 |
| sellersprite-markets | `/v2/market-research` | POST 表单提交(点击"筛选市场"按钮)+ 表格抽取 |
这两个模块早于 v3 SPA 重构,仍是传统 jQuery + Bootstrap,直接抓取渲染后的 HTML 表格。
## 跨 skill 的共性规则
### 站点按钮点击(仅 v2 模块)
sellersprite v2 **忽略** URL `?station=US` 参数。站点切换需点击 `<button class="station-button">` 中匹配中文标签的按钮(如"美国站(com)")。所有 v2 skill 内置 `click_station_button()`,通过 `.startsWith(label)` 同时兼容纯标签("美国")和带后缀标签("美国站(com)")。
### 订阅弹窗自动关闭(仅 v3 模块)
每次 v3 页面加载都会弹出 Ant Design 订阅 modal。所有 v3 skill 在脚本启动时调用 `ensure_<page>_page()`,导航到页面后自动点击 `.ant-modal-close` 关闭。
### 免费会员数据遮蔽
| Skill | 限制 |
|---|---|
| products | 头部商品 `amzUnit` 显示为 100000(实际值未知),按"100k+"对待 |
| keywords | 排名 50 以后的关键词显示为 "XXX",`analyze.py` 自动过滤 |
| markets | 无遮蔽,返回完整数据 |
| aba | 第 2 页起返回 `items: null` + `guestVisited: false`,实际可见上限 = 20 个关键词 |
| competitors | 第 2 页起返回与第 1 页完全相同的 ASIN(脚本按 ASIN 去重),实际可见上限 = 20 个 ASIN |
### GB 分页 bug(products)
GB 站点有时第 2 页返回与第 1 页完全相同的商品。`sellersprite-products/scripts/analyze.py` 自动按 `(market, asin)` 去重。
### 各站点货币
| 站点 | 货币 |
|---|---|
| US | $ |
| JP | 円 |
| GB | £ |
| DE/FR/IT/ES | € |
| CA | $ |
| IN | ₹ |
| MX | $ |
`analyze.py` 的数值解析只剥离 `$` 和 `,`,其他货币符号原样保留为字符串。
### 站点 → market 代码映射(**各 skill 不一致**)
| Skill | US 代码 | 其他站点 |
|---|---|---|
| products | (body 用 marketplaceId=1) | 整数 marketplaceId |
| keywords | (URL `?station=US`) | URL 参数 |
| markets | (按钮点击,hidden input marketId=1) | 整数 marketId |
| aba | `COM` | 2 字母代码(JP/GB/DE/...) |
| competitors | `US` | 2 字母代码(JP/GB/DE/...) |
跨 skill 复用 body schema 时,务必确认 `market` 字段格式。
## 仓库结构
```
sellersprite-rpa/
├── CLAUDE.md # Claude Code 项目级指导
├── README.md # 本文件(中文主版本)
├── README.en.md # 英文版
├── phase1_investigation.md # Phase 1 架构调研报告
├── .claude/skills/
│ ├── sellersprite-products/ # 选产品(API-first)
│ ├── sellersprite-keywords/ # 关键词选品(DOM-scrape)
│ ├── sellersprite-markets/ # 选市场(DOM-scrape,POST form)
│ ├── sellersprite-aba/ # ABA数据选品(API-first)
│ └── sellersprite-competitors/ # 查竞品(API-first,搜索驱动)
├── data/ # CSV 输出
└── reports/ # 生成的 Markdown 报告
```
每个 skill 目录结构:
```
sellersprite-<skill>/
├── SKILL.md # Frontmatter + Quick start + Gotchas
├── scripts/
│ ├── common.py # 共享助手(call/evaluate/navigate/post_json/write_csv)
│ ├── fetch_<skill>.py # 主抓取脚本
│ └── analyze.py # 多站点对比报告生成器
└── references/
├── api_notes.md # 完整 API/页面 schema
├── environment.md # Windows/bash/jq/heredoc 注意事项
└── analysis_recipe.md # 报告模板结构
```
## 支持的 10 个亚马逊站点
| 代码 | 中文 | sellersprite marketId | ABA 代码 | Competitors 代码 |
|---|---|---|---|---|
| US | 美国 | 1 | COM | US |
| JP | 日本 | 6 | JP | JP |
| GB | 英国 | 3 | GB | GB |
| DE | 德国 | 4 | DE | DE |
| FR | 法国 | 5 | FR | FR |
| IT | 意大利 | 8 | IT | IT |
| ES | 西班牙 | 9 | ES | ES |
| CA | 加拿大 | 2 | CA | CA |
| IN | 印度 | 10 | IN | IN |
| MX | 墨西哥 | 11 | MX | MX |
## 在本仓库工作
Windows + bash shell。使用正斜杠路径和 `/dev/null`(不是 `NUL`)。无 build/test/lint 命令——CSV 输出在 `data/`,报告在 `reports/`。
对包含 regex/特殊字符的复杂 JSON payload(尤其是 JS 代码),优先用 Python `urllib.request` 而非 `curl -d`——Windows GBK stdout 在 `curl` JSON 编码时容易出错。
## 相关链接
- `CLAUDE.md` — Claude Code 项目级指导
- `phase1_investigation.md` — 5 个模块的完整架构调研
- `README.en.md` — 英文版 README
- 姐妹项目:`D:\fastmoss-rpa\` — fastmoss.com(TikTok Shop 分析)同模式实现
### 特别感谢:
https://linux.do 社区佬友
连接信息
猜你喜欢
暂无推荐服务器