mcpField
S
scraperapi-price-monitoring

scraperapi-price-monitoring

github.com/scraperapi数据与数据库10106 次安装12 周前更新
代码仓库

关于 scraperapi-price-monitoring

scraperapi-price-monitoring 是用于一次性检查商品价格变化的技能,面向需要比较当前价格与基准文件的用户。它通过 ScraperAPI 结构化端点获取 Amazon、Walmart 或 Google Shopping 数据,并生成分类报告。

主要功能

  1. 01解析 Amazon、Walmart 和购物查询
  2. 02调用结构化价格端点
  3. 03对照基准计算价格变化
  4. 04分类缺货、降价和失败状态
  5. 05生成价格变化报告

适用场景

  1. 01检查关注商品是否降价
  2. 02比较本次价格与基准记录
  3. 03发现补货、缺货或商品下架
  4. 04按价格阈值筛查商品

MCP 相关

优先使用 ScraperAPI MCP 服务的 amazon_product、walmart_product 和 google_shopping 工具获取结构化价格数据。MCP 不可用时可改用 curl。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scraperapi/scraperapi-skills --skill scraperapi-price-monitoring

安装后在 Claude Code 中输入/scraperapi-price-monitoring确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
price-baseline-template.json
price-report-template.md
references/
structured-endpoints.md

详细介绍

价格监控

给定产品列表(ASIN、Walmart URL 或自由文本 Google Shopping 查询)和可选的基准文件,通过 ScraperAPI 的结构化端点获取当前价格,与基准进行比较,并生成结构化的价格变动报告。

你——Claude——使用 Bash 工具执行 API 调用。不要生成供用户运行的脚本;请在本轮中自行获取数据,并在过程中报告发现。如果用户明确要求提供可通过 CLI/cron 运行的脚本,请指引他们使用 scraperapi-cli,然后停止。

身份验证: 所有传输方式都通过 ScraperAPI 进行身份验证。用户设置时,MCP 服务会从其自身配置的环境中读取密钥。curl 回退方式会从 shell 中读取 $SCRAPERAPI_API_KEY。不要单独检查密钥;直接发起第一个实际请求。如果密钥缺失或无效,ScraperAPI 会返回 401,第 3 阶段的故障处理表已涵盖这种情况。添加预检 echo 只会让用户多确认一次权限请求,却无法获知任何从首次调用中无法获知的信息。


第 1 阶段——解析监控列表

获取任何数据之前,先对每个目标进行分类。不同输入会路由到不同的 ScraperAPI 端点,路由错误会浪费额度。

输入格式端点必需参数
10 位字母数字字符串(例如:B08N5WRWNW)structured/amazon/productasin
包含 amazon. 的 URLstructured/amazon/product从 URL 中提取 asin,失败时使用 url
包含 walmart.com 的 URLstructured/walmart/producturl
自由文本查询(例如:"airpods pro 2")structured/google/shoppingquery
其他任何内容告知用户此技能不支持该内容;建议对任意 URL 使用 scraperapi-autonomous-research

运行前公布解析后的计划:“监控列表已解析:3 个 Amazon 产品、1 个 Walmart 产品、1 个 Google Shopping 查询。基准:prices.json(上次更新于 2026-05-25)。现在开始获取数据。”

对于 Amazon URL,使用类似 /(?:dp|gp/product)/([A-Z0-9]{10})/ 的正则表达式提取 ASIN——直接提供 ASIN 时,结构化端点比提供完整 URL 更快、成本更低。


第 2 阶段——加载基准(如有)

基准是用户在多次运行中维护的 JSON 文件。其结构见 assets/price-baseline-template.json。如果用户引用了基准文件,请在获取数据前读取,以便一次性完成比较。

如果不存在基准,则将本次运行视为首次记录——每个产品都成为一条基准记录,价格变动报告仅列出当前观测到的价格(不包含差值)。结束时可提出写入该文件,以便下次运行时进行比较。

未经确认,绝不静默覆盖基准。如果用户希望更新文件,请在他们查看报告后,于本次运行结束时明确执行。

第 3 阶段 — 获取当前价格

此技能请使用 ScraperAPI MCP 服务。 amazon_product、walmart_product 和 google_shopping 等工具提供类型化参数和结构化响应,不会遇到 Shell 引号转义或解析标准输出的问题。对于字段准确性很重要的定价工作流,这正是你需要的方式。

如果 ScraperAPI MCP 服务仍显示正在连接,请稍等片刻,然后先用 ToolSearch 重新检查,再进行其他操作。如果 MCP 确实不可用,请改用 curl(见下文)——此处不要使用 sapi CLI,即使它位于 $PATH 中也不行。CLI 输出需要通过 Shell 解析,而这很容易导致价格数据出错;此技能通过一种传输方式处理所有价格调用,流程也更简单。

并行运行所有目标——在一条消息中发起多个工具调用——这样,包含 10 款产品的关注列表大约一次往返就能完成,而不是十次。

MCP 工具
目标工具关键参数
Amazon 产品amazon_productasin,可选 countryCode(例如 "us")、tld
Walmart 产品walmart_productproductId(/ip/<id> 中的数字,例如 https://walmart.com/ip/5021188053 → "5021188053")、tld
Google Shopping 查询google_shoppingquery,可选 countryCode

完整的架构请参阅 scraperapi-mcp 技能。Walmart 的 MCP 工具接受的是 产品 ID,而不是 URL——请提取 /ip/<id> 部分中的 ID。

curl 备用方案
curl -sG "https://api.scraperapi.com/structured/amazon/product" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "asin=B08N5WRWNW" --data-urlencode "country=us"

curl -sG "https://api.scraperapi.com/structured/walmart/product" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "url=https://www.walmart.com/ip/123456789"

curl -sG "https://api.scraperapi.com/structured/google/shopping" \
  --data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
  --data-urlencode "query=airpods pro 2" --data-urlencode "country=us"
预期响应字段(MCP 和 curl 相同)
  • Amazon: pricing(格式化字符串,例如 "$129.99")、list_price、availability_status、product_information.title、优惠信息。从 pricing 中提取数值,并单独保留货币。
  • Walmart: price、availability、seller_name、product_name。
  • Google Shopping: shopping_results[],其中包含 title、price、extracted_price(ScraperAPI 能解析时为数值)、source(零售商)、link。

确切的字段名称偶尔会变化——请检查每次运行的第一个实际响应,并据此调整解析方式。

处理失败

MCP 工具会将错误作为工具调用错误返回;curl 会返回 HTTP 状态码。

状态操作
200,但价格字段为空或缺失视为“价格不可见”——可能是缺货或页面布局已更改。记录 null 并在结果中说明。
401API 密钥缺失或无效——停止操作,并告知用户设置 SCRAPERAPI_API_KEY(或修正其值)。不要重试。
403请求被拦截——使用高级标志重试一次(MCP 使用 premium: true,curl 使用 &premium=true)。如果仍然失败,将该目标标记为失败并继续。
404产品已不存在——在报告中将其记录为 removed。
429达到并发限制——退避等待(休眠 3 秒)后重试一次。
5xx临时错误——使用退避策略最多重试 3 次(2 秒、4 秒、8 秒)。
MCP 工具不可用本次运行剩余部分改用 curl。

不要无限重试。重试后仍失败的目标,应在报告中添加 status: "failed" 的行,让用户知道缺少哪些数据。

额度预算

每次结构化调用通常消耗约 5 个额度点。包含 50 款产品的关注列表每次运行约消耗 250 个额度点。启动超过约 100 个目标的批次前,请先告知用户预估用量并征得确认。如果用户希望大规模定期监控,建议改用计划任务 CLI(scraperapi-cli)或 DataPipeline,而不是每次检查都通过此技能消耗额度。


阶段 4 — 比较和分类

对于每个目标,计算其与基准值的差值。将其归为以下状态之一——为变更统一使用标签,可以让报告更易于阅读:

状态条件
unchanged价格在基准值的 ±0.5% 范围内
decreased当前价格比基准值低 0.5% 以上
increased当前价格比基准值高 0.5% 以上
restocked基准价格为 null,当前价格为数字
out_of_stock基准价格为数字,当前价格为 null
new基准中完全没有该项
removed基准中有该项,但目标返回 404
failed重试后仍发生网络/API 故障
threshold_hit用户指定了 "低于 $X 时提醒",且当前价格 ≤ X

如果用户给出了明确的提醒阈值(例如,“如果 AirPods 降到 $200 以下就告诉我”),请检查当前价格是否达到阈值,并在报告顶部醒目列出 threshold_hit 项——这是用户最关心的问题。


阶段 5 — 生成报告

使用 assets/price-report-template.md 作为结构来呈现结果。按状态分组,并按变更的重要程度排序:达到阈值 → 降价 → 重新有货 → 缺货 → 涨价 → 新增 → 未变化 → 失败。

每行包含:

  • 产品标识符(ASIN、URL 或查询内容)
  • 标题(来自响应,方便用户识别商品)
  • 基准价格 → 当前价格(注明货币和日期)
  • 差值(同时列出绝对值和百分比)
  • 商品页面的直接链接

最后用一行总结:“12 个商品中有 6 个价格发生变化。最大降幅:AirPods Pro 2,下降 15%($249 → $211)。1 个商品缺货。1 个商品检查失败。”


阶段 6 — 提议更新基准值

呈现报告后,询问用户是否要用新价格更新基准文件。如果用户同意,则写入新的 JSON;通过合并而非覆盖来保留用户添加的字段(例如 notes、alert_below)。如果用户不同意,则保持文件不变。

如果这是首次采集,确认后务必写入基准值——否则下次调用时将没有可供比较的数据,整个流程就失去了意义。


停止条件

此技能只运行一次,生成报告后即停止。它不会循环运行或自行安排任务。如果用户需要定期监控:

  • 每隔几小时临时重新检查:让用户重新运行提示词。
  • 每晚通过 cron 运行:让用户使用 scraperapi-cli 生成脚本。
  • 完全托管的定时任务和存储:引导用户前往 ScraperAPI 控制面板中的 DataPipeline(https://dashboard.scraperapi.com/)。

绝不要启动后台监控程序或编写轮询代码——这超出了此技能的范围,而且每次运行都会消耗用户的额度,未经用户明确同意不得如此操作。


反面做法

  • 当存在结构化端点时,仍抓取原始 HTML。 Amazon/Walmart/Google 的结构化端点正是为了避免解析价格标记而提供的。请使用这些端点。
  • 默认使用某种货币却不作说明。 报告中始终保留响应中的货币代码。如果商品页面使用的是加元,那么将价格读作“$1,299”就是错误的。
  • 跨国家/地区比较。 如果基准值的 country=us,而当前值的 country=gb,则比较的是不同的商品页面——请拒绝比较,并询问用户要使用哪个国家/地区。
  • 默认覆盖基准值。 基准值是用户的真实记录;只有在用户明确确认后才能修改。

参考文件

  • references/structured-endpoints.md — amazon/product、walmart/product 和 google/shopping 的确切参数名称、国家/地区代码以及已知响应字段。开始运行时,请先阅读此文件,再发送第一个请求。
  • assets/price-baseline-template.json — 基准文件的结构。
  • assets/price-report-template.md — 变更报告的 Markdown 框架。

如需深入了解端点行为,请将用户引导至公开文档:https://docs.scraperapi.com/。

评论

支持 Markdown