Skill: beipian261/xianyu-data-grabber (version 1.0.0)

--- name: xianyu-data-grabber description: 闲鱼数据抓取技能。使用 Playwright + OCR 技术突破反爬虫，抓取闲鱼商品数据（标题、价格、想要人数等），自动上传截图和数据到 Gitee 仓库。支持批量关键词搜索、竞品分析、市场调研。 version: 1.0.0 author: 爪爪 tags: - 闲鱼 - 数据抓取 - 竞品分析 - 市场调研 - Playwright - OCR requires: env: - GITEE_TOKEN: Gitee 个人访问令牌 - GITEE_OWNER: Gitee 用户名/组织名 - GITEE_REPO: Gitee 仓库名 - XIANFU_COOKIE: 闲鱼登录 Cookie（可选，提高成功率） bins: - node: JavaScript 运行时 - python3: Python 运行时 - tesseract: OCR 文字识别 - playwright: 浏览器自动化 --- # 闲鱼数据抓取技能 (xianyu-data-grabber) ## 功能描述 使用 Playwright + OCR 技术突破闲鱼反爬虫，抓取商品数据并自动上传到 Gitee 仓库。 **核心能力**: - 批量关键词搜索（支持 15+ 关键词） - 自动截图保存（PNG 格式） - OCR 文字识别（中文 + 英文） - 商品信息提取（标题、价格、想要人数） - 自动生成分析报告（Markdown + JSON） - 自动上传到 Gitee 仓库 ## 什么时候使用 当用户提到以下场景时，激活此技能： 1. 「帮我抓取闲鱼上的竞品数据」 2. 「调研闲鱼上某某类目的商品」 3. 「分析闲鱼头部卖家的定价策略」 4. 「闲鱼市场调研」 5. 「抓取闲鱼商品价格和销量」 6. 「xianyu research」/「闲鱼数据抓取」 7. 「看看闲鱼上这个东西卖得怎么样」 8. 「闲鱼竞品分析」 ## 配置文件 ### 1. 基础配置 创建 `~/.openclaw/workspace/.xianyu-grabber-config.json`: ```json { "gitee": { "token": "your_gitee_token", "owner": "your_username", "repo": "xianyu-data" }, "xianyu": { "cookie": "your_xianyu_cookie" }, "grabber": { "keywords": ["Magisk", "KernelSU", "手机维修"], "screenshotDir": "legion/screenshots", "dataDir": "legion/data", "uploadToGitee": true, "ocrLanguage": "chi_sim+eng" } } ``` ### 2. Gitee 个人访问令牌 获取方式： 1. 登录 https://gitee.com 2. 设置 → 个人访问令牌 3. 创建新令牌（勾选 `projects` 权限） 4. 复制令牌到配置文件 ### 3. 闲鱼 Cookie（可选） 获取方式： 1. 浏览器登录闲鱼 2. F12 开发者工具 → Network 3. 刷新页面 → 复制 Cookie 字段 ## 使用方法 ### 基础用法 ```bash # 抓取单个关键词 xianyu-data-grabber search "Magisk" # 抓取多个关键词 xianyu-data-grabber search "Magisk" "KernelSU" "root" # 使用配置文件中的关键词列表 xianyu-data-grabber search --config ``` ### 高级用法 ```bash # 指定输出目录 xianyu-data-grabber search "Magisk" --output ./my-research # 不上传 Gitee xianyu-data-grabber search "Magisk" --no-upload # 仅 OCR 不抓取（已有截图） xianyu-data-grabber ocr --input ./screenshots # 生成汇总报告 xianyu-data-grabber report --input ./data # 上传到 Gitee xianyu-data-grabber upload --all ``` ### 通过消息技能调用 ``` 帮我抓取闲鱼上"Magisk"相关的商品数据 调研闲鱼手机维修类目的竞品 分析闲鱼 root 服务的定价策略 ``` ## 输出文件 ### 截图文件 - `legion/screenshots/xianyu-{keyword}.png` - 全页面截图（高度可能超过 10000px） ### 数据文件 | 文件 | 格式 | 内容 | |------|------|------| | `xianyu-{keyword}.json` | JSON | 单个关键词原始数据 | | `xianyu-full-data.json` | JSON | 所有关键词汇总 | | `xianyu-summary.md` | Markdown | 汇总报告 | | `xianyu-analysis.md` | Markdown | 深度分析报告 | ### Gitee 仓库结构 ``` xianyu-data/ ├── README.md # 自动生成的说明 ├── data/ │ ├── xianyu-full-data.json │ └── xianyu-{keyword}.json ├── screenshots/ │ └── xianyu-{keyword}.png ├── reports/ │ ├── xianyu-summary.md │ └── xianyu-analysis.md └── upload-{timestamp}.md # 上传记录 ``` ## 核心脚本 ### grabber.js - 主抓取脚本 ```javascript // 1. 启动 Playwright 浏览器（Headless + 伪装） // 2. 加载 Cookie（如有） // 3. 遍历关键词搜索 // 4. 截图保存 // 5. 调用 OCR 识别 // 6. 提取商品信息 // 7. 保存 JSON 数据 ``` ### ocr.py - OCR 识别脚本 ```python # 1. 读取截图 # 2. Tesseract OCR 识别 # 3. 提取价格/想要人数等 # 4. 输出结构化数据 ``` ### uploader.sh - Gitee 上传脚本 ```bash # 1. 调用 Gitee API # 2. 创建/更新文件 # 3. 提交 commit # 4. 返回上传结果 ``` ## 数据格式 ### 单个商品数据 ```json { "keyword": "Magisk", "products": [ { "title": "Magisk 模块合集 17G 资源", "price": "1.00", "wants": "628 人想要", "seller": "卖家信用优秀", "tags": ["24h 自动发货", "包邮"] } ], "timestamp": "2026-03-20T06:00:00+08:00", "screenshot": "screenshots/xianyu-Magisk.png" } ``` ### 汇总报告结构 ```markdown # 闲鱼数据调研报告 ## 关键词：Magisk - 商品数：19 个 - 价格区间：¥1-50 元 - 热门商品：... ## 关键词：KernelSU ... ## 价格分析 ... ## 竞品分析 ... ``` ## DEBUG 指引 ### 日志位置 | 日志 | 文件 | |------|------| | 抓取日志 | `logs/xianyu-grabber.log` | | OCR 日志 | `logs/xianyu-ocr.log` | | 上传日志 | `logs/xianyu-upload.log` | | 错误日志 | `logs/xianyu-error.log` | ### 常见问题 #### 1. 截图显示「非法访问」 **原因**: 反爬虫检测到自动化 **解决**: ```bash # 1. 更新 Cookie # 2. 降低抓取速度（增加延迟） # 3. 减少并发关键词数量 ``` #### 2. OCR 识别结果为空 **原因**: Tesseract 未安装或语言包缺失 **解决**: ```bash # 安装 Tesseract apt-get install tesseract-ocr tesseract-ocr-chi-sim # 验证安装 tesseract --version tesseract --list-langs ``` #### 3. Gitee 上传失败 **原因**: Token 无效或权限不足 **解决**: ```bash # 1. 检查 Token 是否有效 curl -H "Authorization: Bearer YOUR_TOKEN" https://gitee.com/api/v5/user # 2. 检查仓库权限 # 确保 Token 有 projects 权限 ``` #### 4. Playwright 浏览器启动失败 **原因**: 缺少依赖或浏览器未安装 **解决**: ```bash # 安装 Playwright 浏览器 npx playwright install chromium # 安装系统依赖 apt-get install libnss3 libnspr4 libatk1.0-0 \ libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 \ libxcomposite1 libxdamage1 libxfixes3 libxrandr2 \ libgbm1 libasound2 libpango-1.0-0 libcairo2 ``` ### 测试命令 ```bash # 测试配置 xianyu-data-grabber test-config # 测试 OCR xianyu-data-grabber test-ocr --image test.png # 测试 Gitee 上传 xianyu-data-grabber test-upload --file test.txt # 完整测试 xianyu-data-grabber test --all ``` ## 定时任务 ### 每日自动抓取 ```bash # crontab -e 0 9 * * * cd ~/.openclaw/workspace && node skills/xianyu-data-grabber/grabber.js --config --upload >> logs/xianyu-cron.log 2>&1 ``` ### 每周生成报告 ```bash 0 10 * * 1 cd ~/.openclaw/workspace && node skills/xianyu-data-grabber/report.js >> logs/xianyu-report.log 2>&1 ``` ## 安全与隐私 ### 敏感数据保护 - **Cookie**: 存储在配置文件，权限 600 - **Gitee Token**: 存储在配置文件，权限 600 - **数据文件**: 本地存储，不上传第三方 ### 平台合规 - **请求频率**: 默认 5 秒间隔/关键词 - **User-Agent**: 真实浏览器标识 - **数据使用**: 仅用于个人研究 ## 性能优化 ### 批量抓取 ```bash # 并行抓取（更快但可能被检测） xianyu-data-grabber search --parallel 3 # 串行抓取（更慢但更安全） xianyu-data-grabber search --sequential ``` ### 缓存机制 - 截图缓存：避免重复抓取 - OCR 缓存：避免重复识别 - 数据缓存：5 分钟有效期 ## 相关文件 - 技能文件：`skills/xianyu-data-grabber/SKILL.md` - 主脚本：`skills/xianyu-data-grabber/grabber.js` - OCR 脚本：`skills/xianyu-data-grabber/ocr.py` - 上传脚本：`skills/xianyu-data-grabber/uploader.sh` - 配置文件：`.xianyu-grabber-config.json` ## Changelog ### v1.0.0 (2026-03-20) - 🎉 初始版本 - Playwright + OCR 抓取 - Gitee 自动上传 - 批量关键词支持 - 自动生成报告


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector:  ()