← 返回 Skill 列表
extension
分类: 数据与分析无需 API Key

淘宝/天猫商品评价导出 · 一键采集为本地 Markdown 表格

输入一个淘宝/天猫商品详情页链接,自动打开商品页、触发「用户评价」抽屉、滚动加载评价并导出为本地 Markdown 表格(含用户名、日期、已购 SKU、正文、图片数、商家回复、追评)。当用户说「导出这个淘宝/天猫商品的评价」「帮我抓一下这个商品的买家评论/差评」「选品调研要看竞品评价」「复制了一个淘宝商品链接想分析评价」时唤起本 skill。

person作者: user_b00960b5hubcommunity

taobao-review-export

功能

给一个淘宝或天猫商品详情页链接,自动完成:打开商品页 → 触发「用户评价」抽屉 → 滚动加载评价列表 → 提取每条评价的 8 个字段 → 导出为本地 Markdown 表格。用于选品调研、竞品差评分析、爆款分析等场景,默认采集 20 条公开评价。

前置条件

  1. Chrome 已打开,且浏览器扩展已启用、relay 服务已启动(HTTP API:http://127.0.0.1:3459)。skill 启动时会探测 /api/status 的 extensionConnected,未连接会直接报错。
  2. Chrome 里已登录淘宝。本 skill 只使用你当前的登录态,未登录时页面会跳登录页,skill 会明确报错并提示你登录后重试。
  3. 失败归因需要调用 LLM 子会话,因此本地 pipeline 服务(:3460)需在运行中。该服务不可用时,主流程不受影响,只有失败提示会退化成内置的固定文案。

使用方式

node skill.mjs <input.json>

input.json 字段:

| 字段 | 必填 | 说明 | |---|---|---| | productUrl | 是 | 淘宝/天猫商品详情页链接,形如 https://item.taobao.com/item.htm?id={itemId} 或 https://detail.tmall.com/item.htm?id={itemId}。带 id 参数即可,不需要签名/加密参数 | | count | 否 | 采集目标条数,默认 20。达到即停 | | output_dir | 否 | 输出目录(绝对路径),默认当前工作目录 | | output_files | 否 | { "result": "res.json", "data": "data.md" },可覆盖结果文件名 | | entry_text | 否 | 「查看全部评价」入口文案覆盖项,默认 查看全部评价。淘宝改文案时用它兜底,无需改代码 |

示例:

{
  "productUrl": "https://detail.tmall.com/item.htm?id=603182978744",
  "count": 20,
  "output_dir": "/abs/path/to/out"
}

输出

写到 output_dir:

  • reviews.md —— 主产物,Markdown 表格,列为:序号 | 用户名 | 日期 | 已购SKU | 正文 | 图片数 | 商家回复 | 追评。已购SKU/图片数/商家回复/追评 有则填、无则留空;正文里的 | 会被转义、换行替换为空格,保证表格不被撑破。未达 count 但不少于 5 条时,文件首行为 <!-- partial --> 并附一行原因说明。
  • data.md —— 与 reviews.md 内容相同(平台约定的数据文件)。
  • res.json —— 精简元信息:status(success / partial / failed)、total、stop_reason、summary、失败时的 error 与 hint。

stdout 只输出一行 JSON 摘要:{"status":...,"summary":...,"output_dir":...}。

行为说明

  • 真实鼠标点击:触发评价抽屉的点击走扩展内部的 Input.dispatchMouseEvent(真实鼠标事件)。页面用 el.click() 之类的合成事件会被 React 的 isTrusted 检查无视,所以本 skill 一律用真实鼠标点击。
  • 滚动加载:抽屉初始只渲染 20 条,滚动内部列表容器后会再加载 20 条(实测 20 → 40 → 60 递增)。count > 20 时会自动滚动补齐,滚动间隔 ≥2s 以避免触发淘宝访问限制。
  • 数据提取:全部由 page.eval 直接从 DOM 提取结构化 JSON,选择器一律用 class 前缀匹配(hash 后缀随版本变化),并把作用域限定在抽屉容器内——商品页左栏的预览评价卡片 class 相同,不限定会混入重复且缺字段的行。
  • 去重:按 用户名 + 日期 + 已购SKU + 正文前20字 去重,抵御滚动加载时同一卡片重复出现。
  • 失败归因:只有在失败路径(找不到评价入口 / 抽屉打不开 / 完整评价不足 5 条)才会调用一次 LLM 子会话,把页面标题、URL、正文片段等现场信息交给它判断原因,产出面向普通用户的中文提示;成功路径零子会话。