Skip to main content

1688-alibaba-data-fetcher

1688卖家工作台数据抓取:原生聊天用MEDIA、飞书必须用message;登录必须同回合内持续poll。

설치로 이동

소스 정보

저장소
RabbitAI-Lab/rabbit-plugins-upstream
최근 소스 활동
2026년 7월 26일 20:50
감지된 SKILL.md 언어
중국어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
28 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
1688-alibaba-data-fetcher
description
1688卖家工作台数据抓取:原生聊天用MEDIA、飞书必须用message;登录必须同回合内持续poll。
# 1688卖家工作台 — 1688 Data Claw 插件 数据抓取 > 适用系统:Linux (Ubuntu 24.04) / Windows 10/11 > 插件:1688 Data Claw v1.0.0(自研 Chrome 扩展,content script 自动采集 + 外部 API 获取) ## ⚠️ 执行规则(最高优先级) **本 skill 所有操作必须通过 skill 文件夹内预装的脚本完成,禁止自行编写代码。** **工作流程中避免输出思考、执行过程、输出目前执行到了哪一步,只输出给用户的登录二维码图片、报告、首次安装后的提示等必要内容** 1. **先看目录**:每次执行前,先 `ls $SKILL_DIR/scripts/` 确认可用脚本 2. **只用脚本,不写代码**:数据采集用 `fetch_data.py`,报告生成用 `generate_report_v3.py`,飞书推送用 `push_feishu_post.py`,浏览器管理用 `start-browser.sh/.ps1`。**禁止在 chat 中拼接 Python/JS 代码来替代脚本,如果脚本运行有问题再考虑阅读并修复问题** 3. **脚本路径始终相对于 `$SKILL_DIR`**:`cd $SKILL_DIR && python3 scripts/xxx.py`(Windows 用 `.\python3.cmd` 替代 `python3`) 4. **数据来源只能是插件**:报告生成脚本只读取 `fetch_data.py` 产出的 JSON,禁止自己调用 API 或猜测数据 5. **🔒 报告数据只读**:报告 7 段数据(商品/流量/交易/新老客/新灯塔/流量渠道/关键词)由 `generate_report_v3.py` 生成,**模型绝对禁止修改、删减、重写、替换、添加**。模型仅可修改 `## ⚠数据诊断` 与 `## ✅明日工作清单` 段落 6. **违反上述规则的操作无效**,必须按脚本流程重新执行 --- ## ⚠️ Windows 浏览器隔离(必读) **Windows 上必须使用独立 Chromium 便携版,与用户日常 Chrome 完全隔离。** | 隔离层级 | 说明 | |---|---| | **独立可执行文件** | 从 skill 预打包的 Chromium 压缩包解压到专用目录 | | **独立 user-data-dir** | 不共享用户的 cookies、密码、会话、扩展 | | **独立 CDP 端口** | `9222`,避免与用户 Chrome DevTools 冲突 | | **禁用同步** | `--disable-sync` | | **禁用后台服务** | 关闭组件更新、崩溃报告等 | **`executablePath` 指向独立 Chromium,`user-data-dir` 指向独立目录。** **⚠️ 三层强制验证(缺一不可):** 1) CDP 9222 端口有响应;2) `$USER_DATA/.openclaw_browser_marker` 标记文件存在;3) 进程参数 `--user-data-dir` 指向独立目录(Linux: `/tmp/chromium`,Windows: `C:\isolated-profiles\1688-agent`)。任何一层不通过 → 视为非独立 Chromium → 拒绝连接。**任何时候都禁止连接用户 Chrome。** ## 触发条件 用户提到以下关键词时使用本 skill,**先 `ls $SKILL_DIR/scripts/` 查看可用脚本**: - 1688 数据抓取、1688 店铺数据、1688 诊断 - 1688 Data Claw、数据采集 - 飞书推送 1688 报告 - 1688 登录二维码 - 登录 ## 一、初始化 > **路径约定:** `$SKILL_DIR` = 本 SKILL.md 所在目录。`$SKILL_DIR/..` 为 workspace 目录(报告输出位置)。**Python 脚本内置跨平台支持(`platform.system()` 自动检测 Linux/Windows)。** ### 1.1 固定路径(主会话和定时任务必须使用相同实例) | 项目 | Linux | Windows | |------|-------|--------| | **浏览器可执行文件** | `$SKILL_DIR/chromium/chrome-linux64/chrome` | `$SKILL_DIR/chromium/chrome-win64/chrome.exe` | | **用户数据目录** | `/tmp/chromium` | `C:\isolated-profiles\1688-agent` | | **插件目录** | `$SKILL_DIR/plugin`(随 skill 打包) | 同 | | **CDP 端口** | `9222` | `9222` | | **虚拟显示** | `Xvfb :99` | 不需要 | | **输出目录** | `$SKILL_DIR` | `$SKILL_DIR` | | **飞书 chat_id / 凭证** | 从 `scripts/env.sh` 读取 | 从 `scripts/env.ps1` 读取 | **关键规则:** 1) 启动前先检查 CDP 9222(Linux `curl`,Windows `curl.exe` 避免 PowerShell 别名冲突);2) **绝不 kill 任何进程**;3) 用预打包的 Chromium(Snap 版不稳定);4) 凭证从 env 文件读取,禁止硬编码。 ### 1.2 脚本目录 | 脚本 | 平台 | 用途 | |------|------|------| | `setup.sh` / `setup.ps1` | Linux / Windows | 一键初始化:依赖 + Chromium + 嵌入式 Python + 目录。**首次部署**执行一次 | | `start-browser.sh` / `start-browser.ps1` | Linux / Windows | 启动/复用独立 Chromium(三层验证) | | `fetch_data.py` | 跨平台 | 一键采集 → 保存 JSON。Windows 用 `python3.cmd` | | `generate_report_v3.py` | 跨平台 | **当前默认**:Markdown 表格版日报 | | `generate_report_v2.py` / `generate_report.py` | 跨平台 | 旧版(v2紧凑/v1表格),已弃用保留供参考 | | `push_feishu_post.py` | 跨平台 | 飞书推送:直接调飞书 `im/v1/messages` API 用 `post`+`md`,正确渲染表格 | | `login.py` | 跨平台 | 一键登录:清Cookie→扫码→等待 | | `cdp_client.py` | 跨平台 | CDP 客户端模块 | | `python3.cmd` | Windows | 嵌入式 Python 3.12 启动器 | ### 1.3 一键初始化(首次部署执行一次) ```bash # Linux ./scripts/setup.sh # Windows .\scripts\setup.ps1 ``` **Chromium 下载源:** npmmirror(淘宝,国内 ~4.5MB/s),自动回退 Google 官方源。 ### 1.4 启动浏览器(仅在 CDP 9222 无响应时执行) ```bash ./scripts/start-browser.sh # Linux .\scripts\start-browser.ps1 # Windows ``` 逻辑:检查端口 → 已运行则三层验证 → 通过跳过/未通过拒绝(不杀进程)→ 未运行则启动独立 Chromium(`--load-extension` + 独立 `--user-data-dir` + `--disable-sync`)。**绝不连接用户 Chrome。** ### 1.5 插件位置(随 skill 打包在 `plugin/`) ``` plugin/ ├── manifest.json # 固定 ID: ekmgnempbbamlmaolijdfjakeopniion ├── background.js # Service Worker - 数据汇总 + API ├── content.js # Content Script - 自动采集 ├── md5.js # MTOP 签名 ├── popup.html/js ├── openclaw-bridge.js └── icons/ ``` ### 1.6 配置飞书通知 > v3 推送链路:app_id + app_secret + chat_id,不依赖 OpenClaw `message` 工具或 lark-cli。 **步骤 1:向用户获取三项凭证** | 项目 | 获取方式 | |------|----------| | App ID(`cli_` 开头) | 飞书开发者后台 → 应用 → 凭证 | | App Secret | 同上 | | Chat ID(`oc_` 开头) | 用户提供目标群聊会话 ID | **步骤 2(可选):OpenClaw Gateway 绑定飞书 channel**(仅在需要在 chat 内接收消息时保留) ```bash openclaw plugins install @openclaw/feishu openclaw gateway restart ``` **步骤 3:把三项凭证写入 env 文件** `scripts/env.sh`(Linux) / `scripts/env.ps1`(Windows): ```bash export FEISHU_APP_ID="cli_xxxxxxxx" export FEISHU_APP_SECRET="***" export FEISHU_CHAT_ID="oc_xxxxxxxx" ``` ```powershell $script:FEISHU_APP_ID = "cli_xxxxxxxx" $script:FEISHU_APP_SECRET = "***" $script:FEISHU_CHAT_ID = "oc_xxxxxxxx" ``` **步骤 4:验证推送链路** ```bash # 验证 token python3 scripts/push_feishu_post.py --check # Windows: cd $SKILL_DIR; .\python3.cmd scripts/push_feishu_post.py --check # 发送测试报告 python3 scripts/push_feishu_post.py $SKILL_DIR/1688_daily_report_v3.md ``` 成功 → 飞书目标群收到 Markdown 卡片,输出 `✅ 发送成功,message_id: om_xxxxx`。失败检查:`FEISHU_APP_ID/SECRET/CHAT_ID`、应用是否已发布、`im:message:send_as_bot` 权限、IP 白名单。 --- ## 二、数据抓取方案(1688 Data Claw 插件) **通过 CDP 连接浏览器,在页面上下文执行 JS,调 `chrome.runtime.sendMessage` 外部消息 API 获取插件采集的数据。** 数据由插件自动采集,模型**禁止自行调用 API 或猜测**。 **固定扩展 ID:** `ekmgnempbbamlmaolijdfjakeopniion` **采集页面:** | 页面 | URL | 采集内容 | |------|-----|----------| | **工作台** | `work.1688.com` | 旺旺响应率、咨询满意度、物流指标、品质退款率、新灯塔评分 | | **生意参谋** | `sycm.1688.com` | 店铺排名、商品概况、流量、询盘、交易、近7天流量来源/关键词 | content script 在导航完成后自动采集,等待 5-8s 即可通过 `fetch_claw_data(mode='full')` 获取。详见预装的 `scripts/cdp_client.py`。 **API Mode:** `full`(全部)/ `sycm`(仅生意参谋)/ `work`(仅工作台)/ `summary`(汇总)。 --- ## 三、数据结构(插件采集,禁止自己拿) ### 3.1 生意参谋(sycm) ```json { "_pageType": "sycm", "companyName": "店铺名", "category": "主营类目", "subCategory": "子类目", "identity": "svip", "isSvip": true, "rankTrend": { "lastDate": "YYYY-MM-DD", "rank": 5, "layer": 3, "cateLevel1": "...", "cateLevel2": "...", "payAmt": 12345.67, "rawDates": [...], "rawRanks": [...], "rawPayAmt": [...] }, "itemOverview": { /* 在线/动销/UV/PV */ "statDate": "YYYY-MM-DD", "itemCnt": 100, "pullSalesItemCnt": 50, "uv": 200, "payItemQty": 8, "hasVisitorItemCnt": 30, "itemPv": 500 }, "flowStats": { /* 总展现/PV/UV/点击/跳失/无线 */ "statDate": "YYYY-MM-DD", "revealCnt": 1000, "pv": 500, "uv": 200, "clickRate": 0.5, "avgPvs": 2.5, "bounceRate": 0.3, "payByrCnt": 10, "payAmt": 5000, "mobileUv": 120, "mobilePv": 300, "mobileShare": 0.6 }, "inquiry": { /* 询盘、旺旺分 */ "statDate": "YYYY-MM-DD", "effectiveInQUsers": 8, "wangInQUsers": 8, "effectInQCnt": 8, "wangInQCnt": 6, "repeatRate": 0.25, "scorefh": 4.5, "scorehm": 4.2, "scorexy": 4.8 }, "trade": { /* 交易:金额/买家/订单/退款/客单价 */ "statDate": "YYYY-MM-DD", "payAmt": 5000, "payByrCnt": 10, "payNewByrCnt": 3, "payOldByrCnt": 7, "payItemQty": 20, "payMordCnt": 15, "payRate": 0.05, "perByrAmt": 500, "crtOrdItmQty": 8, "crtByrCnt": 5, "crtOrdAmt": 800, "rfdSucAmt": 200, "refundRate": 0.04, "newBuyerAmt": 1500, "newBuyerShare": 0.30, "oldBuyerShare": 0.70, "oldBuyerPerAmt": 500 }, "tradeRecent7": { "dateRange": "YYYY-MM-DD|YYYY-MM-DD", "payAmt": 35000, "payByrCnt": 70, "payNewByrCnt": 20, "payOldByrCnt": 50, "payRate": 0.06, "perByrAmt": 500, "rfdSucAmt": 800, "refundRate": 0.023 }, "flowSourceRecent7": { "dateRange": "YYYY-MM-DD|YYYY-MM-DD", "sources": [ {"name": "搜索", "myUv": 50, "goodUv": 249, "outerId": "search", "outerLevel": "1", "parentOuterId": ""}, {"name": "自然搜索", "myUv": 30, "goodUv": 150, "outerId": "search_natural", "outerLevel": "2", "parentOuterId": "search"} ], "totalMyUv": 103, "totalGoodUv": 758 }, "keywordsRecent7": { "dateRange": "YYYY-MM-DD|YYYY-MM-DD", "keywords": [ {"keyword": "...", "keywordRevealCnt": 82, "uv": 3, "pv": 6, "leadPayAmt": 0, "leadPayByrCnt": 0, "leadCrtByrCnt": 0, "clickRate": 0.036, "webClickRate": 0.032, "webPayRate": 0.01, "revealItem": 9, "bestOrder": 1, "avgOrder": 1, "webSearchIndex": 6014, "webSupplyAndDemandIndex": 120, "referencePrice": 25.00} ], "totalKeywordReveal": 1000, "totalLeadPayAmt": 0, "recordCount": 10 } } ``` ### 3.2 工作台(work) ```json { "_pageType": "work", "wwResponse": {"score": 95.0, "name": "3分钟响应率", "time": "06.17"}, "wwSatisfaction": {"score": 98.0, "name": "咨询满意度"}, "lgt48hGotRate": {"score": 98.5, "name": "48H揽收率"}, "lgtFulfillRate": {"score": 98.5, "name": "履约率"},
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기