scraperapi-price-monitoring について
scraperapi-price-monitoringは、現在価格と基準ファイルを比較する単発の価格確認スキルです。ScraperAPIの構造化エンドポイントでAmazon、Walmart、Google Shoppingのデータを取得し、状態別のレポートを作成します。
主な機能
- 01Amazon、Walmart、検索語を分類
- 02構造化価格エンドポイントを利用
- 03基準価格と現在価格を比較
- 04在庫・価格・失敗の状態を分類
- 05価格変動レポートを作成
活用シーン
- 01監視商品の値下がりを確認する
- 02現在価格を保存済み基準と比較する
- 03再入荷、在庫切れ、商品削除を見つける
- 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.jsonprice-report-template.mdreferences/structured-endpoints.md詳細
価格モニタリング
商品リスト(ASIN、Walmart の URL、または自由記述の Google Shopping 検索クエリ)と、任意のベースラインファイルを受け取り、ScraperAPI の構造化エンドポイント経由で現在の価格を取得し、ベースラインと比較して、変更をまとめたレポートを生成します。
あなた — Claude — が Bash ツールを使って API 呼び出しを実行します。 ユーザーが実行するスクリプトを生成しないでください。このターン中に自分でデータを取得し、判明した内容を随時報告してください。ユーザーが CLI や cron で実行できるスクリプトを明示的に求めた場合は、scraperapi-cli を案内して終了してください。
認証: すべてのトランスポートは ScraperAPI に対して認証されます。MCP サーバーは、ユーザーがセットアップ時に指定した自身の設定済み環境からキーを読み取ります。curl のフォールバックは、シェルから $SCRAPERAPI_API_KEY を読み取ります。キーの単独確認は実行しないでください。まず実際のリクエストを行ってください。キーがないか無効な場合、ScraperAPI は 401 を返します。フェーズ 3 のエラー処理表では、このケースをすでに扱っています。事前に echo を実行しても、ユーザーに余計な許可確認を求めるだけで、最初の呼び出しから得られる情報以上のものは得られません。
フェーズ 1 — ウォッチリストを解析する
データを取得する前に、各対象を分類してください。入力の種類によって使用する ScraperAPI エンドポイントが異なり、誤った振り分けはクレジットの無駄になります。
| 入力形式 | エンドポイント | 必須パラメーター |
|---|---|---|
10 文字の英数字(例:B08N5WRWNW) | structured/amazon/product | asin |
amazon. を含む URL | structured/amazon/product | URL から asin を抽出し、抽出できない場合は url を使用 |
walmart.com を含む URL | structured/walmart/product | url |
自由記述の検索クエリ(例:"airpods pro 2") | structured/google/shopping | query |
| その他 | このスキルではサポートされていないことをユーザーに伝え、任意の URL には scraperapi-autonomous-research を提案 |
実行前に、解析したプランを伝えてください。例:「ウォッチリストを解析しました:Amazon 商品 3 件、Walmart 商品 1 件、Google Shopping の検索クエリ 1 件です。ベースライン:prices.json(最終更新日:2026-05-25)。これから取得します。」
Amazon の URL では、/(?:dp|gp/product)/([A-Z0-9]{10})/ のような正規表現で ASIN を抽出してください。完全な URL より ASIN を直接指定したほうが、構造化エンドポイントを高速かつ低コストで利用できます。
フェーズ 2 — ベースラインを読み込む(ある場合)
ベースラインは、ユーザーが実行のたびに維持する JSON ファイルです。形式は assets/price-baseline-template.json に記載されています。ユーザーがベースラインファイルを指定した場合は、1 回の処理で比較できるよう、データ取得前に読み込んでください。
ベースラインがない場合は、今回の実行を初回の記録として扱ってください。すべての商品がベースラインエントリーとなり、変更レポートには差分を含めず、現在確認できた価格のみを記載します。次回の実行で比較できるよう、最後にファイルへの書き込みを提案してください。
ユーザーに確認せず、ベースラインを上書きしてはいけません。ユーザーがファイルの更新を希望する場合は、レポートを確認してもらった後、実行の最後に明示的に更新してください。
フェーズ 3 — 現在の価格を取得する
このスキルでは ScraperAPI MCP サーバーを使用してください。 amazon_product、walmart_product、google_shopping などのツールは、型付き引数と構造化されたレスポンスを提供するため、シェルでの引用符処理や標準出力の解析が不要です。価格ワークフローではフィールドの正確さが重要なので、これが適しています。
ScraperAPI MCP サーバーがまだ接続中と表示されている場合は、少し待ってから、ほかの操作をする前に ToolSearch で再確認してください。MCP が実際に利用できない場合は、curl(以下に記載)にフォールバックしてください。この場合、sapi CLI が $PATH 上にあっても、使用しないでください。CLI の出力には価格データの解析に誤りが生じやすいシェル処理が必要です。また、このスキルではすべての価格取得を単一のトランスポート経由にすることで、よりシンプルにしています。
レポートの最後に、curl にフォールバックする必要があった場合は、MCP サーバーをインストールすると(セットアップ方法は scraperapi-mcp スキルに記載)、今後の実行が簡単になることを伝えてください。ツールのインストールのために、現在の実行を止めないでください。
すべての対象を並列で実行してください。つまり、1 つのメッセージで複数のツールを呼び出します。これにより、10 製品のウォッチリストを 10 回ではなく、約 1 回のラウンドトリップで処理できます。
MCP ツール
| 対象 | ツール | 主な引数 |
|---|---|---|
| Amazon 製品 | amazon_product | asin、任意で countryCode(例:"us")、tld |
| Walmart 製品 | walmart_product | productId(/ip/<id> 内の数字。例:https://walmart.com/ip/5021188053 → "5021188053")、tld |
| Google Shopping のクエリ | google_shopping | query、任意で countryCode |
完全なスキーマについては、scraperapi-mcp スキルを参照してください。Walmart の MCP ツールが受け取るのは URL ではなく 製品 ID です。/ip/<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:
title、price、extracted_price(ScraperAPI が解析できた場合は数値)、source(小売業者)、linkを含むshopping_results[]。
フィールド名はときどき変わるため、実行時に最初に取得した実際のレスポンスを確認し、必要に応じて解析方法を調整してください。
エラーへの対処
MCP ツールではツール呼び出しエラーとしてエラーが示されます。curl は HTTP ステータスコードを返します。
| ステータス | 対応 |
|---|---|
| 価格フィールドが空または存在しない 200 | 「価格を確認できない」として扱います。在庫切れか、レイアウトが変更された可能性があります。null を記録し、そのことを明示してください。 |
| 401 | API キーが設定されていないか無効です。処理を停止し、SCRAPERAPI_API_KEY を設定する(または値を修正する)ようユーザーに伝えてください。再試行しないでください。 |
| 403 | ブロックされています。プレミアムフラグを付けて 1 回再試行してください(MCP では premium: true、curl では &premium=true)。それでも失敗する場合は、その対象を失敗として記録し、続行してください。 |
| 404 | 製品は存在しなくなっています。レポートに removed として記録してください。 |
| 429 | 同時実行数の上限に達しました。待機(3 秒スリープ)してから、1 回再試行してください。 |
| 5xx | 一時的なエラーです。バックオフ(2 秒、4 秒、8 秒)を入れて、最大 3 回再試行してください。 |
| MCP ツールを利用できない | 残りの実行では curl にフォールバックしてください。 |
無限に再試行しないでください。再試行後も失敗した対象は、レポートに status: "failed" の行を追加し、取得できなかったものがユーザーにわかるようにしてください。
クレジットの予算
構造化された呼び出し 1 回あたり、通常は約 5 クレジットを消費します。50 製品のウォッチリストでは、1 回の実行に約 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 | ユーザーが "alert below $X" を指定し、現在の価格が X 以下 |
ユーザーが明示的なアラートしきい値を指定した場合(例:「AirPods が $200 を下回ったら教えて」)、現在の価格がそのしきい値に達しているか確認し、threshold_hit の項目をレポートの先頭に目立つように表示します。これはユーザーが最も知りたいことです。
フェーズ 5 — レポートの作成
assets/price-report-template.md を構成のひな形として使用し、結果を表示します。興味深い変更が大きい順に状態ごとにまとめます。しきい値到達 → 値下がり → 再入荷 → 在庫切れ → 値上がり → 新規 → 変更なし → 失敗。
各行には次の項目を含めます。
- 商品の識別子(ASIN、URL、またはクエリ)
- タイトル(レスポンスから取得。ユーザーが商品を認識しやすくなります)
- ベースライン価格 → 現在の価格(通貨と日付を含む)
- 差分(絶対値と割合の両方)
- 商品ページへの直接リンク
最後に、1 行の概要を記載します。「12 商品中 6 商品の価格が変わりました。最大の値下がり:AirPods Pro 2 −15%($249 → $211)。1 商品が在庫切れになりました。1 件が失敗しました。」
フェーズ 6 — ベースラインの更新を提案する
レポートを提示した後、新しい価格でベースラインファイルを更新するか尋ねます。更新する場合は、新しい JSON を書き込みます。ユーザーが追加したフィールド(例:notes、alert_below)は上書きせず、マージして保持します。更新しない場合は、ファイルに変更を加えません。
初回の価格取得の場合は、確認を得た後にベースラインを書き込みます。そうしないと、次回の実行時に比較対象がなく、繰り返す意味がありません。
停止条件
このスキルは 1 回限りで、実行後にレポートを出して終了します。ループやスケジュール設定は行いません。ユーザーが定期的なモニタリングを希望する場合:
- 数時間ごとの臨時の再確認には、プロンプトを再実行してもらいます。
- 毎晩の cron には、スクリプトの生成に
scraperapi-cliを案内します。 - スケジュール設定とストレージを完全に管理する方法には、ScraperAPI ダッシュボードの DataPipeline を案内します(https://dashboard.scraperapi.com/)。
バックグラウンドで監視する処理を開始したり、ポーリングするコードを書いたりしてはいけません。このスキルの対象外であり、実行のたびにユーザーの明示的な同意なくクレジットを消費するためです。
アンチパターン
- 構造化エンドポイントがあるのに、生 HTML をスクレイピングする。 Amazon、Walmart、Google の構造化エンドポイントは、価格のマークアップを解析しなくて済むように用意されています。これらを使用してください。
- 通貨を暗黙に決めつける。 レスポンスの通貨コードを必ずレポートに含めてください。商品ページの通貨が CAD の場合、「$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/)を案内してください。