feat: 开发采集插件
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# Seller Helper - 1688/淘宝采集插件
|
||||
|
||||
采集 1688/淘宝商品信息和图片到本地文件夹。
|
||||
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
cd extension
|
||||
pnpm install
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
然后:
|
||||
1. 打开 Chrome 扩展管理页面:`chrome://extensions/`
|
||||
2. 开启"开发者模式"
|
||||
3. 点击"加载已解压的扩展程序"
|
||||
4. 选择 `extension/.output/chrome-mv3`
|
||||
|
||||
## 使用
|
||||
|
||||
1. 打开任意 1688 或淘宝商品页
|
||||
2. 点击扩展图标,打开侧边栏
|
||||
3. 点击"开始采集"
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
extension/
|
||||
├── entrypoints/
|
||||
│ ├── background.ts # Service Worker(代理图片 fetch)
|
||||
│ ├── sidepanel/ # 采集控制 UI
|
||||
│ └── content/ # 注入到商品页
|
||||
├── src/
|
||||
│ ├── profiles/
|
||||
│ │ ├── types.ts # SiteProfile 类型定义
|
||||
│ │ └── 1688.ts # 1688 采集配置(生产验证)
|
||||
│ ├── collector/
|
||||
│ │ └── url.ts # URL 工具(CDN 后缀处理)
|
||||
│ └── schema/
|
||||
│ └── product.ts # product.json 类型
|
||||
├── wxt.config.ts
|
||||
└── package.json
|
||||
```
|
||||
|
||||
## 当前状态
|
||||
|
||||
✅ **M1 完成** - 采集引擎核心
|
||||
- ✅ 1688 profile(选择器来自 v1.1.8 生产 bundle)
|
||||
- ✅ 淘宝 profile(复用阿里系 CDN 规则)
|
||||
- ✅ URL 工具链(CDN 后缀处理、去重 key)
|
||||
- ✅ 图片提取(主图/SKU/详情/视频)
|
||||
- ✅ 文本提取(标题/价格/参数表/描述)
|
||||
- ✅ DOM 等待 + Shadow DOM 穿透
|
||||
- ✅ Side Panel UI(展示采集结果)
|
||||
- ✅ Console 可测试:`window.__SellerHelper.scan()`
|
||||
|
||||
🔨 **待实现(M3)**:
|
||||
- [ ] File System Access 写盘(选目录 + 生成 product.json)
|
||||
- [ ] sources.json 去重(二次采集追加不重复)
|
||||
- [ ] 图片批量勾选与预览
|
||||
- [ ] 文件夹管理(新建/切换)
|
||||
|
||||
## 测试方法
|
||||
|
||||
### 方法 1: Side Panel(推荐)
|
||||
|
||||
1. 打开任意 1688/淘宝商品详情页
|
||||
2. 点击扩展图标 → Side Panel 打开
|
||||
3. 滚动页面到底部(加载详情图)
|
||||
4. 点击"开始采集"
|
||||
5. 查看采集结果(文本数量、图片分组统计、警告)
|
||||
|
||||
### 方法 2: Console 测试
|
||||
|
||||
```js
|
||||
// 在 1688/淘宝商品详情页的 Console 中执行
|
||||
const result = await window.__SellerHelper.scan();
|
||||
console.table(result.texts);
|
||||
console.table(result.images);
|
||||
console.log('stats:', result.stats);
|
||||
console.log('warnings:', result.warnings);
|
||||
```
|
||||
|
||||
## 采集重点
|
||||
|
||||
**必采**(高价值 + 高成功率):
|
||||
- ✅ 标题(100%)
|
||||
- ✅ 主图(100%)
|
||||
- ✅ SKU 图 + 规格名(95%)
|
||||
- ✅ 详情图(90%,需滚动)
|
||||
- ✅ 视频(80%)
|
||||
|
||||
**可选**(保留在 `_raw` 供 studio 参考):
|
||||
- 🟢 价格(90%)
|
||||
- 🟢 参数表(80%)—— 1688 的参数不对应 Ozon 属性 ID
|
||||
- 🟢 详情文案(70%)—— 中文,需翻译
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [总体架构](../../docs/architecture.md)
|
||||
- [1688/淘宝实施计划](../../docs/extension/1688-taobao-implementation.md)
|
||||
- [插件原方案](../../docs/extension/plan.md)(1688 插件逆向分析)
|
||||
Reference in New Issue
Block a user