从妙手ERP的Shopee采集箱提取商品完整数据(标题、描述、SKU、主图等)。触发条件:(1)商品已在Shopee采集箱需要提取数据 (2)执行TC-CS-001测试 (3)product-storer落库前需要商品数据
从妙手ERP的Shopee采集箱爬取商品完整数据。提取:货源ID、标题、类目、品牌、SKU列表(含规格/价格/库存)、主图URL列表、详情图、描述。
/home/ubuntu/.openclaw/skills/collector-scraper/scraper.py/home/ubuntu/.openclaw/skills/miaoshou-collector/miaoshou_cookies.json(共享)/home/ubuntu/work/tmp/collector_scraper_test/cd /home/ubuntu/.openclaw/skills/collector-scraper
python scraper.py --list # 列出采集箱商品
python scraper.py --scrape 0 # 爬取第1个商品(index=0)
python scraper.py --scrape 1 # 爬取第2个商品(index=1)
或Python调用:
from scraper import CollectorScraper
scraper = CollectorScraper()
scraper.launch()
result = scraper.scrape(index=0)
scraper.close()
print(result)
| 字段 | 说明 |
|---|---|
source_id | 货源ID(从1688链接提取) |
title | 商品标题 |
category | 类目 |
brand | 品牌(可能为None) |
main_image | 主图URL |
images | 所有主图URL列表 |
skus | SKU列表(3个:深棕色大号/小号/一套) |
description | 详情描述 |
物流 | weight (g), length_cm, width_cm, height_cm |
妙手ERP使用Vue,部分按钮需JS触发:
page.evaluate('''() => {
var btns = document.querySelectorAll("button");
for (var b of btns) {
if (b.innerText.trim() === "编辑") { b.click(); return; }
}
}()''')
妙手ERP使用 jx-pro-virtual-table 虚拟表格,数据从输入框提取:
inputs = dialog.query_selector_all('input')
for inp in inputs:
ph = inp.get_attribute('placeholder') or ''
val = inp.input_value() or ''
使用JavaScript直接提取SKU数据,精确匹配Element UI组件:
价格提取:
const priceInput = document.querySelector('.jx-pro-input.price-input input.el-input__inner');
// 结果: 12.9
库存提取(需去重):
const allInputs = document.querySelectorAll('.jx-pro-input input.el-input__inner');
// 过滤:排除出现多次的值(重复的是默认值),保留只出现1次的真正库存
SKU图片提取:
const imgBoxes = document.querySelectorAll('.el-image.img-box');
// 在box内查找颜色名称(包含"奶"、"白"、"黄"等关键字)
JavaScript字符串使用注意:
r"""...""" 让Python传递原始字符串给JSsed -i 's/evaluate("""/evaluate(r"""/g' file.py| 问题 | 解决方案 |
|---|---|
| 货源ID提取None | 从 href=".../offer/1027205078815.html" 正则提取 |
| SKU数量不准确 | 检查输入框逻辑,3个规格组合 |
| 物流信息为空 | 由local-1688-weight服务补充 |
| 编辑对话框未出现 | 检查Vue事件,尝试JS click |