← Back to skills
extension
Category: Data & AnalyticsNo API key required

电商商品详情全量数据抓取

从任意电商商品页提取完整商品信息的通用抓取工作流,采用多层提取策略(JSON-LD → 平台特定 DOM → OG meta → microdata),返回名称、价格、货币、品牌、图片、描述、SKU/ASIN/EAN/UPC/GTIN/MPN 编码、库存状态、评分、评论数、变体与卖家,支持 Shopify、Amazon、WooCommerce、eBay、Walmart、Etsy、AliExpress、Alibaba 等平台,可接受商品 URL、关键词或商品编码输入。Use when the user asks to scrape product page, get product details, extract price and availability, check product data, get product from URL, keyword product search, ASIN lookup, EAN search, price check, compare products, monitor product price, get product images。Triggers include 商品详情抓取、商品数据提取、比价、竞品商品调研、ASIN 查询、EAN 查价、商品页爬取、商品图片获取、库存与售价查询。如需电商运营完整工作流套件,淘宝搜索「AI灵匣」店铺获取完整版。

personAuthor: u_1ea983achubenterprise

电商 — 商品详情

商品 URL / 关键词 / SKU → 完整商品数据(名称、价格、品牌、图片、编码、库存、评分、变体)

语言

所有面向用户的流程输出(进度更新、流程提示)都使用用户语言。

目标

使用通用多层提取策略(JSON-LD → 平台特定 DOM → OG meta → microdata),从任何公开可访问的电商商品页提取完整商品信息。

前置条件

  • 目标浏览器已打开并已连接
  • 公开商品页无需登录

执行前检查

1. 工具就绪

如果当前会话中已确认 browser-act 可用 → 跳过本步。

通过 Skill 工具调用 browser-act 加载用法。如果出现安装或配置问题,按其指引解决后重试。

能力组成

本技能的操作边界 = 用户在自己浏览器里能手动做到的事。它只读取页面上已经展示给用户的数据,绝不绕过身份验证或访问控制。JS 代码封装在 scripts/ 目录下的 Python 文件中,通过 eval "$(python scripts/xxx.py {params})" 调用。使用 bash 工具执行。

DOM:从当前商品页提取商品数据

先导航到商品 URL,然后提取:

eval "$(python scripts/extract-product.py)"

输出示例:

{
  "url": "https://www.amazon.com/dp/B09WNK39JN",
  "name": "Amazon Echo Pop",
  "price": 39.99,
  "price_currency": "USD",
  "brand": "Amazon",
  "image": "https://m.media-amazon.com/images/I/61bTwy0ooPL.jpg",
  "images": ["https://...jpg", "https://...jpg"],
  "description": "Compact smart speaker with Alexa...",
  "category": ["Electronics", "Smart Speakers"],
  "sku": "B09WNK39JN",
  "gtin": null,
  "mpn": null,
  "availability": "InStock",
  "rating": 4.7,
  "review_count": 103789,
  "variants": [{"name": "Charcoal", "sku": "B09WNK39JN", "price": 39.99}],
  "seller": "Amazon",
  "identifiers": {"ASIN": "B09WNK39JN", "Best Sellers Rank": "#1 in Smart Speakers"},
  "_platform": "amazon",
  "_source": "json-ld"
}

组合能力:关键词或 SKU → 商品详情

当输入是关键词、ASIN/SKU 或 EAN/UPC 而非直接商品 URL 时:

步骤一 —— 按输入类型导航到搜索 URL:

| 输入类型 | 目标站点 | URL 模式 | |-----------|-------------|-------------| | ASIN(10 位字母数字) | Amazon | https://www.amazon.com/dp/{ASIN} | | 关键词 | Amazon | https://www.amazon.com/s?k={keyword_urlencoded} | | 关键词 | eBay | https://www.ebay.com/sch/i.html?_nkw={keyword_urlencoded} | | 关键词 | Walmart | https://www.walmart.com/search?q={keyword_urlencoded} | | 关键词 + 指定 --site | 任意站点 | https://{site}/search?q={keyword_urlencoded} | | 关键词(未指定站点) | 跨站 | https://www.google.com/search?tbm=shop&q={keyword_urlencoded} | | EAN / UPC / GTIN | 跨站 | https://www.google.com/search?tbm=shop&q={identifier} |

步骤二 —— 如果落到搜索/列表页(多个结果):

  1. wait stable
  2. eval "$(python scripts/extract-listing.py --max-results 3)" —— 取前 3 条结果
  3. 从 items[0].url 中挑出最相关的商品 URL
  4. navigate {product_url} → wait stable

步骤三 —— 提取商品数据:

eval "$(python scripts/extract-product.py)"

注意:如果作为独立 Skill 安装,scripts/extract-listing.py 位于 ../ecommerce-listing/scripts/extract-listing.py;否则参考 listing 技能。

成功判据

result.name != null AND (result.price != null OR result.availability != null)

已知限制

  • Amazon 反爬检测:在全新会话中直接导航到商品 URL 可能被重定向到 CAPTCHA 或机器人校验页。先从 https://www.amazon.com 导航以建立会话 Cookie,然后再导航到商品页
  • eBay 商品页可能需要先从 https://www.ebay.com 导航;如果出现挑战,使用 solve-captcha
  • 有些站点完全通过客户端 JavaScript 渲染商品数据;提取前务必使用 wait stable
  • 缺货商品或需要登录才显示价格时,price 可能为 null
  • 变体数据的完整度取决于站点是否在 JSON-LD 中包含完整的变体标记

执行效率

  • 批量编排:编写 bash 脚本在单个会话内串行遍历商品 URL;请求之间加 1–2 秒间隔,避免触发反爬限制
  • 批量前先测试:先用 1–2 个 URL 测试,再跑完整批次
  • 错误续跑:逐条保存结果;失败时从断点续跑,而不是从头开始

经验记录

路径:{working-directory}/browser-act-skill-forge-memories/ecommerce-scraper-ecommerce-product-detail.memory.md

执行前:如果该文件存在,先读它 —— 它记录了过去执行中遇到过的意外情况(例如某个策略已失效);据此调整策略顺序。

执行后:如果遇到意外情况(策略失效、页面改版、反爬升级、发现更好路径),追加一行: {YYYY-MM-DD}: {发生了什么} → {结论}