🎯 カスタマイズ可能で検出回避型のクラウドブラウザ。自社開発のChromiumを搭載し、ウェブクローラーAIエージェント向けに設計されています。👉今すぐ試す
ブログに戻ります

2026年のためのステップバイステップガイド:Scrapeless Agent Browserを使ったAmazonスクレーパーの構築方法

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

27-Apr-2026

主なポイント:

  • 動的レンダリング、ラフHTMLではない。 Amazonの商品詳細ページ、検索結果、レビューはクライアント側で水和されます — Scrapeless Agent Browserは、実際のクラウドブラウザでそれらをレンダリングします。特にAmazonでは、wait --load networkidle安定しない(遅延読み込み広告/ビーコントラフィックが継続して発生します);wait 1500の後にwait '<stable-selector>'を使用してください(例:PDPでは#productTitle/sページでは[data-asin]:not([data-asin=""]))。
  • セッションごとのジオルーティング。 --proxy-country--proxy-state--proxy-city--timezone、および--languagesは、.com.co.uk.de、および.co.jpのリクエストごとにロケールを一貫させます。
  • 検出 → 抽出フロー。 AmazonはA/Bバリアントにわたってクラス名や属性フックを回転させます。セレクタを書く前にget htmlでDOMを読み取り、その後evalで抽出します — 出荷コードにクラス名をハードコーディングしないでください。
  • 論理操作ごとに新しいセッション。 実際には、Scrapelessセッションは連続する2〜3回の水和ページ取得のためにクリーンな状態を保ちます。それを超えると、chrome://new-tab-pageを返したり、静かに終了したりし始めます。20回以上のリクエストのために長寿命のセッションを再利用するのではなく、ページごとまたは小さなバッチごとに新しいセッションを発行してください。

はじめに

Amazonは、オープンウェブ上で最大の製品データの表面です:価格インテリジェンス、レビュー収集、ベストセラーランクの監視、MAPコンプライアンス、ブランデーション保護はすべて同じ公共リスティングページから流れ出ます。公式のProduct Advertising APIは承認サイクルが制限されており、レビュー本文、BSRの時系列、競合販売者データを公開しません — したがって、ほとんどの真剣なAmazonデータパイプラインは依然としてスクレイピングを行っています。

現代のAmazonスクレイパーは、次のいくつかの現実に同時に対処しなければなりません:ページはJavaScriptで水和され、クラス名はA/Bバリアント間で回転し、クッキーおよびロケールステートはページネーションされたリクエスト間で持続する必要があり、IPの評判に基づくフィルタリングはデータセンターからの出口を厳しく扱います。これらの4つの懸念をラフHTTPクライアントまたはローカルにインストールされたPlaywrightで処理することは、誰も所有したくない数週間のメンテナンスを追加します。

このガイドは、Scrapeless Agent Browser上に構築されたターミナルファーストのワークフローを通じて、通常数週間かかる部分を処理します:検出防止フィンガープリンティング、住宅用プロキシ、動的レンダリング、市場間ロケールの一貫性 — すべて単一のscrapeless-scraping-browser CLIを通じて。


何ができるか

  • 動的競争価格設定。 コンペティターのASIN価格をリアルタイムで.com上で追跡し、シグナルを再調整ルールに供給し、ローカルブラウザを実行せずにプロモーションウィンドウを監視します。
  • MAPコンプライアンス監視。 小売業者のリスティングとサードパーティの販売者オファーを、製造業者が設定した最低広告価格に対してスキャンし、違反が発生した際にフラグを立てます。
  • PDP上のレビュー信号。 各PDPに表示されるトップレビューをクラスタリングします(ASINあたり5〜10レビュー、ステップ3の抽出を介して) — トレンド検出と評価監視に十分です。/product-reviews/*全体のレビュー収集には、2026年に認証されたセッションが必要です;ステップ5を参照してください。
  • 在庫と可用性の追跡。 ASIN間での在庫切れ、プライム適格性の変更、および出荷リードタイムの変動を監視し、供給チェーンの圧力を予測します。
  • BSRとランキングインテリジェンス。 市場規模の算出、ローンチ追跡、カテゴリシェア分析のために、カテゴリおよびサブカテゴリ全体のベストセラーランキングを取得します。
  • ブランド保護。 市場の店舗間での偽造リスティング、無許可のサードパーティ販売者、および商標違反を検出します。

なぜScrapeless Agent Browserなのか

Scrapeless Agent Browserは、ウェブクローラーおよびAIエージェント向けに設計されたカスタマイズ可能な、検出防止のクラウドブラウザです。特にAmazonに対しては、以下の利点があります:

  • 195以上の国の住宅用プロキシ--proxy-country--proxy-state--proxy-city)によるロケールマッチした出口 — そもそもAmazonの対ボットのインタースティシャルを回避するための負荷を支える原始的なものです。
  • すべてのセッションでの検出防止フィンガープリンティング、したがってページはオーガニックトラフィックと同様にレンダリングされます。
  • ページネーションされたリクエスト間でのセッション持続性--session-idにより)、したがってクッキー、カート、およびプライムのコンテキストはページ間で一貫しています。
  • クラウドブラウザでのJavaScriptレンダリングにより、価格ブロック、可用性バナー、遅延読み込みレビュー本文、A+コンテンツの水和したDOMを保証します。
  • セッションごとのロケール調整--timezoneおよび--languagesは、選択したプロキシの地理に自動的に合わせます。

無料プランでAPIキーを取得するには、scrapeless.comへ。関連するScrapeless製品: Universal Scraping APIProxy Solutions、およびモデルコンテキストプロトコル統合のためのScrapeless MCP Server
APIスタイルのインターフェースがブラウザよりもパイプラインに適している場合は、付属のAmazon Scraper APIAmazon製品データのスクレイピングガイドを参照してください。Amazonに特化したソリューションハブ全体については、scrapeless.com/en/solutions/amazonを参照してください。


前提条件

  • Node.js 18以上。
  • ScrapelessアカウントとAPIキー — scrapeless.comでサインアップしてください。
  • jq(オプション、シェルスクリプトでのJSONパース用 — 以下にポータブルなgrepフォールバックが示されています)。
  • ターミナルに関する基本的な知識。

インストール

以下のレシピはscrapeless-scraping-browser CLIで実行されます。セットアップは3つのステップです — CLIユーザーとAIエージェントユーザーの両方が#1と#2を必要とし、AIエージェントユーザーは#3も行います。

1. CLIパッケージをインストール

bash Copy
npm install -g scrapeless-scraping-browser

これにより、各ステップで呼び出されるscrapeless-scraping-browserバイナリが提供されます。このスキルは独自のランタイムを持たず、AIエージェントにコマンドパターンを読み込みますが、CLI自体は最初にインストールする必要があります。

2. APIキーを設定

scrapeless.comからトークンを取得し、CLIが読み取れる場所に保存します:

bash Copy
scrapeless-scraping-browser config set apiKey your_api_token_here
scrapeless-scraping-browser config get apiKey   # 確認する

AIエージェントを使用していますか? スキルの指示は、エージェントにセッション呼び出しの前に認証が必要であることを明示的に知らせます。エージェントが最初にCLIを使用しようとする際にAPIキーが設定されていない場合、エージェントはあなたに尋ね、config set apiKey ...コマンドを自動的に実行します — その後も手動で設定することができます(上記のコマンド)または、エージェントが尋ねたときにトークンを貼り付けることができます。

設定ファイルは~/.scrapeless/config.jsonに存在し、現在のユーザーにのみアクセスが制限され、環境変数よりも優先され、エージェントやCIランナー間でポータブルです。CIパイプラインの場合は、次のようにすることをお勧めします:

bash Copy
export SCRAPELESS_API_KEY=your_api_token_here

3. AIエージェントにScrapelessスキルをインストール

これは上記のステップ1とは別のステップです。ステップ1ではCLIバイナリがインストールされました — これはエージェントが呼び出すランタイムです。スキルは、エージェントにそれを正しく呼び出す方法を教えるものです(セレクタ、待機、リトライパターン、発見→抽出ワークフロー)。これらは異なるものであり、両方が必要です。

スキルはSKILL.md + skill.json + references/を含むフォルダーです。正式なソースは**scrapeless-ai/scrapeless-agent-browser → skills/scraping-browser-skill**リポジトリです。

Claude Code、Cursor、VS Code + GitHub Copilot、OpenAI Codex CLI、またはGemini CLIにインストールするには、**Scrapeless AI Agentインストールガイド**に従ってください — 各エージェントごとのコピーペーストコマンド(bashおよびWindows PowerShell)が含まれています。インストール後にエージェントを再読み込みして、スキルをアクティブにします。

スキルがインストールされていない場合、エージェントは発見→抽出パターン、エンジンごとの待機や2026年に実際に機能するセレクタを知りませんので、毎回のプロンプトで詳細を手取り足取り教える必要があります。

スキルがエージェントの操作コンテキストに最初にロードする内容:

  • 認証~/.scrapeless/config.jsonまたはSCRAPELESS_API_KEYをチェックし、見つからない場合は設定を促します(ステップ2を参照)。
  • 発見→抽出ワークフローこれが逆風耐性パターンです。エージェントは最初にget html "<region>"でライブDOMを読み取り、安定したアンカー(data-*属性、aria-labelrole、セマンティックID)を特定し、その後、実際にレンダリングされたものに基づいてevalセレクタを作成します — A/Bバリアント間で回転するユーティリティクラス名を推測する代わりに。
  • セレクタ構文 — CSSセレクタ(#productTitle[data-asin])とアクセシビリティ参照(snapshot -iからの@e1)を使用するタイミング。
  • 待機の落とし穴 — 冷却セッションのchrome://new-tab-pageレースを回避するために、openwait --load networkidleの間にwait 1500、ネットワークアイドルが安定しない際にターゲットページの要素に対してwait <selector>
  • 並列CLIワーカー — シングルシェルの&&チェイニング、ユニークセッション名、ホストごとに最大3つの同時ワーカー。--session-id単独ではデーモンの競合下で十分ではありません。
  • 一般的な落とし穴evalはJSON引用付きの値を返します("49.99"ではなく49.99)、成功したナビゲーションでopenは非ゼロで終了します、接続が閉じるとセッションは終了します。
  • 完全なコマンドリファレンスnew-sessionopenwaitevalgetclickfillsnapshotauthprofilerecordingstopなどの各フラグ。

4. スキルが正しく接続されているか確認する

最初の本格的なAmazonスクレイプの前に、エージェントに安全なプロンプトを使ってインストールをスモークテストします:

「Scrapelessスキルを使用して、https://example.comを開き、ページタイトルを教えて。」

エージェントはScrapelessセッションを作成し、ナビゲートし、「Example Domain」と応答する必要があります。これらの2つの単語が表示される場合、スキルはロードされており、APIキーが設定されていて、クラウドブラウザーに接続可能です—あなたはAmazonをスクレイプする準備ができています。

失敗した場合:

症状 考えられる原因 修正方法
「そのためのツール/スキルがありません」 このエージェントセッションにスキルがロードされていない スキルインストールガイドから再インストールし、エージェントを再読み込み
Authentication failed / 401 APIキーが設定されていない scrapeless-scraping-browser config set apiKey <token>を再実行(インストールステップ2)
command not found PATHにCLIバイナリがない インストールステップ1を再実行(npm install -g scrapeless-scraping-browser
ハング / chrome://new-tab-page/に出る コールドセッション待機競合 エージェントに再試行を依頼—スキルはopenwait --load networkidleの間にwait 1500を挿入することを知っています
Amazonでpage.goto: Timeout 25000ms exceeded(しかしexample.comは機能する) Scrapeless ↔ Amazon住宅プロキシCAPTCHA圧力 異なるプロキシ国で再試行(--proxy-country GB/CA/DE);持続的な使用のために、Scrapeless Amazon Scraper APIに切り替え

これを実際に使う方法: エージェントにプロンプトを送信

インストール後、あなたはエージェントと会話することでAmazonをスクレイプします—bashをコピー&ペーストするのではなく。スキルはセレクターを読み込み、待機、再試行クラスifierをエージェントのコンテキストに組み込むので、1行の自然言語プロンプトで構造化されたJSONを得ることができます。

ペースト可能なプロンプト

あなたがエージェントに言う 返ってくるもの
「AirPodsのためにAmazonをスクレイプ—タイトル、価格、評価、ASINの上位10件」 JSONリスト、10のカード、フィールド{title, price, rating, asin, url, sponsored}
「ASIN B09B8V1LZ3の完全な製品詳細を取得」 JSONオブジェクト:{title, price, rating, reviewCount, availability, prime, asin, topReviews[]}
「'ワイヤレスヘッドフォン'でAmazon検索をスクレイプ、ページ1〜5を保存をheadphones.jsonとして」 1つのJSONファイル、5ページ×約22のオーガニックカード、ASINで重複排除
「Echo Dot製品ページからトップレビューを引き出す」 JSON配列—著者、評価、タイトル、日付、本文、役に立ったカウント—PDPレビューキャロセルのために
「ASIN B09B8V1LZ3の価格をamazon.comとamazon.co.ukで比較」 サイドバイサイドの価格;.es/.deは匿名でブロックされます—エージェントはそれを伝え、Scraper APIのパスを提供します
「ASIN B09B8V1LZ3の価格を次の6時間ごとに追跡」 ポーリングループ、各ポーリングのための新しいセッション、結果をCSV/JSONに追加
「電子機器のベストセラーを見つける→価格と評価を持つ上位20件」 JSON、/gp/bestsellers/electronicsからの20行
「このリストをスクレイプし、それがプライム適格かどうかを教えて:https://amazon.com/dp/B09B8V1LZ3」 prime: true/falseを持つ単一オブジェクト、バッジの証拠テキストも含まれます
「B09B8V1LZ3の評価ヒストグラム(5★/4★/3★/2★/1★%)を取得」 2026年に認証が必要—エージェントは説明し、Scraper APIのパスを提供します
「'200以下のオフィスチェア'を検索し、広告をフィルタリングし、上位10のオーガニックを返す」 オーガニックのみのJSON;スポンサー付きカードは[data-component-type="sp-sponsored-result"]を介して削除
「amazon.comのApple Storeで現在販売中のものは何ですか?」 ストアフロントに対する発見通行、次に販売タグ付きアイテムを抽出
「ASIN B09B8V1LZ3について、箇条書きの特徴とA+セクションのテキストをリストアップ」 2つの配列:#feature-bulletsからの機能箇条書きとA+パラグラフ

作業例:ASIN B09B8V1LZ3の完全な製品カードを取得する

あなたが入力する:

「ASIN B09B8V1LZ3のタイトル、価格、評価、レビュー数、および上位5つのレビューを取得。JSONを返す。」

エージェントの計画(平易な英語で):

  1. 米国経由セッションを作成する(AmazonはIPによってローカライズします)。
  2. https://www.amazon.com/dp/B09B8V1LZ3を開き、wait 1500、次にwait '#productTitle'を実行してコールドセッションの競合を回避します。
  3. get html "#centerCol"でアンカーを確認し(Amazonの頻繁なレイアウト変更を処理)、その後evalを使用して#productTitle.a-price .a-offscreen#acrPopover[title]#acrCustomerReviewText、および[data-hook="review"]×5を取得します。

返ってくるもの(スキーマは規範的—JSONの形状;以下のレビュー文は説明のサンプルです):

json Copy
{
  "asin": "B09B8V1LZ3",
  "title": "Echo Dot (第5世代、2022年版) | 大きな鮮やかな音...",
  "price": "$49.99",
  "rating": "4.7 / 5 スター",
  "reviewCount": "191,146 レビュー",
  "availability": "在庫あり",
  "prime": true,
  "topReviews": [
    {
      // 説明的 — 実際のレビュー項目は[data-hook="review"]×5から埋め込まれます
      "author": "James M.",
      "rating": "5.0 / 5 スター",
      "title": "優れた音質、簡単な設定"
    }
  ]
}

{
"date": "2026年3月14日にアメリカでレビューされました",
"body": "セットアップは2分で完了しました。音声認識は顕著にシャープです..."
}
プライム対象: プライム, URL: location.href,
});
})()
'

Copy
リッチなスキーマ(箇条書き機能、ブランド、販売者、発送元、画像ギャラリー、バリアントマトリックス)については、各地域ごとに発見→抽出サイクルを繰り返します。 [ASINレベルのウィキガイド](https://www.scrapeless.com/ja/wiki/how-to-scrape-amazon-asin-data-with-scrapeless) および [製品価格ウィキガイド](https://www.scrapeless.com/ja/wiki/how-to-scrape-amazon-products-price-data-with-scrapeless) では、追加のフィールドが文書化されています。

---

## ステップ4 — ページネーションを使用したカテゴリ検索のスクレイピング

アマゾンは検索結果を `&page=N` でページネートします。単一クエリのためのアクセス可能なオーガニック深度は約20ページ(約400アイテム)です。これは構造的インデックス制約です。より広範なカバレッジのためには、キャップを越えて推進するのではなく、ファセット(ブランド、価格帯、サブカテゴリー)ごとにクエリを分割します。

```bash
QUERY="ワイヤレス+ヘッドフォン"
for page in $(seq 1 20); do
  # 各ページごとに新しいセッションを作成します。長期間のセッション再利用は、
  # ~3回の水分補給ページ要求の後に劣化します(chrome://new-tab-pageの静かな戻り値または
  # 完全な終了)。1ページごとに1セッションがより信頼性が高く、簡単に並列化できます。
  SID=$(scrapeless-scraping-browser new-session --name "search-p$page" --ttl 300 \
    --json | jq -r '.data.taskId')

  URL="https://www.amazon.com/s?k=$QUERY&page=$page"
  scrapeless-scraping-browser --session-id $SID open "$URL"
  # networkidleは遅延読み込みストリームのため/sでは決着しません; 代わりにカードを待ちます
  scrapeless-scraping-browser --session-id $SID wait '[data-asin]:not([data-asin=""])'

  scrapeless-scraping-browser --session-id $SID eval "
    (() => {
      const cards = document.querySelectorAll('[data-asin]:not([data-asin=\"\"])');
      // カードの数は変動します(視野、クエリ、A/Bバリアントに応じて約16〜60);
      // ページごとのインデックスを発行し、消費者がそれに基づいて絶対的な順位を計算できるようにします
      // 固定の乗数をここに埋め込むのではなく、ページ番号を加えます。
      return JSON.stringify({
        query: '$QUERY', page: $page,
        results: [...cards].map((c, i) => ({
          pageIndex: i + 1,
          asin: c.getAttribute('data-asin'),
          title: c.querySelector('h2 span')?.textContent?.trim() || null,
          price: c.querySelector('.a-price .a-offscreen')?.textContent || null,
          // 評価: 複数の星ウィジェットサーフェスを試してください — アマゾンはこれらを回転させます
          rating: parseFloat(
            c.querySelector('[aria-label*=\"5つ星中の評価\"]')?.getAttribute('aria-label')
            || c.querySelector('i.a-icon-star span.a-icon-alt, i.a-icon-star-small span.a-icon-alt')?.textContent
            || ''
          ) || null,
          sponsored: c.querySelector('[data-component-type=\"sp-sponsored-result\"]') !== null || c.matches('[data-component-type=\"sp-sponsored-result\"]'),
          prime: !!c.querySelector('[aria-label*=\"プライム\"]'),
          url: c.querySelector('a.a-link-normal.s-underline-link-text')?.href || null,
        })),
      });
    })()
  " > "results-page-$page.json"

  scrapeless-scraping-browser stop $SID
done

1ページごとに新しいセッション、長いセッションではありません。 理論的には再利用された --session-id がクッキーとフィンガープリントを保持しますが、実際にはScrapelessセッションは約3回の水分補給ページ要求後に空の chrome://new-tab-page を返したり、終了したりするため、信頼できるパターンはページごとに短期TTLのセッションを作成し、最後に停止することです。その後、ページ間の並列化は簡単です — ループ本体を背景のワーカーで調整なしに実行します。

ASINはページ1〜5でユニークではありません(スポンサー付きASINは正当な重複があります — 観測された104ユニーク/274総数);デデュープ時にクロスページASINセットが不連続であることを仮定しないでください。

ホストごとの同時実行を3以下に保つ。 同じローカルデーモンに対して4回以上の同時CLI呼び出しを実行すると、ターゲットページのクラッシュや「評価中にターゲットページ、コンテキストまたはブラウザが閉じられました」エラーが表示されます。より高いスループットを実現するには、同じボックスで同時実行を増やすのではなく、複数のホスト(または複数のユーザーアカウント)に分割します。

並列ワーカーを実行していますか? デフォルトの ~/.scrapeless-scraping-browser/ デーモンは、同じホスト上のプロセス間で共有されています。複数のワーカーは、各自の --session-id を渡しても、他のワーカーのセッションを奪う可能性があります。実際に機能する方法:一つのジョブのためのすべてのCLI呼び出しを、単一シェルの && 呼び出しとしてチェーンします(デーモンの視点からは原子的です — 他のワーカーがあなたのステップの間にインターロックできません)、ユニークなセッション名を使用します(ポートは名前からハッシュ化されます)、ホストごとに約3ワーカーの同時実行を制限します。 USERPROFILE/HOME 環境変数の隔離は上流のスキルに文書化されていますが、私たちのテストでは、Windows上のRust v0.1.1バイナリを隔離するものではありません — より高いファンアウトには、ホスト間で分割します。完全なパターンについては skill-dev/SKILL.md の「並列CLIエージェント」を参照してください。

より深いカバレッジ戦略については、Amazonカテゴリーデータのスクレイピング方法 をご覧ください。


ステップ5 — レビューと星ヒストグラムに関する注意

2025年を通じて、/product-reviews/<ASIN>/ ページは匿名でアクセス可能で、星フィルター × ページ番号のデカルト積により、レビュー全文のスクレイピングは容易でした。しかし2026年、Amazonはゲートを変更しました:レビューURLへの匿名リクエストは、圧倒的多数のケースで /ap/signin にリダイレクトされます。PDP内のレビューキャロセル([data-hook="review"] はメインPDP内)は引き続き匿名でアクセス可能で、これはステップ3の抽出で表示された上位5〜10件のレビューです。しかし、星フィルターごとの深いトラバースや、レビュー ページの星評価ヒストグラムは、認証されたセッションが必要です。

実用的な前進方法は2つあります:

  • PDP上のトップレビューを使用する(ステップ3の抽出で利用可能; 追加のナビゲーションは不要) 5〜10件のレビューがASINごとに十分な場合 — 通常、評判監視やトレンド検出にはこれが当てはまります。
  • 完全なレビューコーパスが必要な場合 は、認証されたセッション状態でScraping Browserをペアリングします。 auth save <name> は認証情報を保存し、 auth login <name> はそれを再生しますが、MFAプロンプトは各新しいログインで表示されるため、MFAエンフォースメントがないAmazonアカウントにのみ実用的です。スケールで完全な履歴レビューコーパスが必要なパイプラインの場合、Scrapeless Amazon Scraper API がサーバーサイドの認証を処理し、呼び出し側には必要ありません。

いずれにせよ、2026年には匿名 /product-reviews/* のスクレイピングを試みないでください — 最初の数回のリクエストの後、すべてのリクエストは /ap/signin に達し、レビュー作業のためのセッションは実質的に無効になります。


ステップ6 — クロスマーケットプレイススナップショットに関する注意

ASINは世界的に安定しています — 価格、供給状況、販売者プールは .com.co.uk.de、および .co.jp で異なります — 原則として、マーケットプレイスごとにプロキシアラインされたセッションが自然なパターンです。実際には、米国からのセッションが非米国マーケットプレイスにアクセスすると、しばしばロケールの中間ページに到達します(例:amazon.es/dp/<ASIN> はスペイン語の「Seguir comprando」(買い物を続ける)ページを返します — ~160バイト、#productTitle なし、カートに追加マーカーなし — 製品詳細ページの代わりに)。非米国マーケットプレイスへのリクエストは、現在 Scrapeless Amazon Scraper API によって最適に処理されており、サーバーサイドでマーケットプレイスのルーティングを行います。

特に米国マーケットプレイス(.com)においては、このガイドのすべてのステップが地理的なフラグなしでエンドツーエンドで機能します。現在のマルチマーケットプレイスパイプラインでは、非米国マーケットプレイスにはScraper APIを使用し、米国のカスタムフロー作業にはScraping Browserを使用します。

住宅プロキシモデルに関する背景は、住宅プロキシを使用したAmazonのスクレイピング および Amazonのスクレイピング用プロキシ を参照してください。


あなたが受け取るもの

Scraping BrowserはライブDOMを返します — 抽出スキーマは呼び出し元が eval ステップに書く内容です。ステップ3の発見 → 抽出テンプレートを使用した単一のPDPパスにおいて、現在確実に戻ってくるフィールドは以下の通りです:

json Copy
// スキーマは規範的です;以下のフィールド値は最近のキャプチャからの例示サンプルであり、B09B8V1LZ3の今日の凍結スナップショットではありません。
{
  "asin": "B09B8V1LZ3",
  "title": "Echo Dot (第5世代, 2022年発売) | 大きな鮮やかな音...",
  "brand": "Amazon",
  "final_price": "49.99",
  "availability": "在庫あり",
  "rating": 4.7,
  "review_count": 191146,
  "prime_eligible": true,
  "amazon_choice": true,
  "bought_past_month": "過去1か月で10K件以上購入",
  "features": [
    "どんな部屋にも最適 – 鮮やかな音...",
    "音楽を音声でコントロール – 曲をストリーミング..."
  ],
  "image_url": "https://m.media-amazon.com/images/I/...",
  "images_count": 9,
  "delivery": "対象注文に無料配送",
  "url": "https://www.amazon.com/dp/B09B8V1LZ3",
  "domain": "www.amazon.com"
}

この出力に関するいくつかの正直な観察が、スケールで実行する前に知っておく価値があります:

  • 詳細仕様テーブルはテンプレートによって制限されています。 #productDetails_detailBullets_sections1 / #detailBulletsWrapper_feature_div 内にあるフィールド — product_dimensionsitem_weightmodel_numbermanufacturerupcdate_first_availabledepartment — は、頻繁にAmazonが提供するDOMから欠落しています。異なる住宅IPを使用するか、URLに ?language=en_US&m=ATVPDKIKX0DER を追加すると、時々完全なテンプレートが表示されます。毎回存在すべきフィールドについては、Scrapeless Amazon Scraper API がサーバーサイドでこれを解決します。
  • ベストセラーランキング(BSR)およびその祖先のカテゴリbs_rankbs_categoryroot_bs_rankroot_bs_categorysubcategory_rank)も同じ詳細仕様ブロックの一部です。同じ警告が適用されます。
  • number_of_sellers/gp/offer-listing/<ASIN>/ に二次ナビゲーションを必要とし、その後販売者行のカウントを抽出する必要があります。
  • **top_review**はPDPレビューカルーセル([data-hook="review-body"])から取得されます。2026年には/product-reviews/<ASIN>/へのフォールバックパスが匿名では機能しなくなるため(ステップ5を参照)、各ASINごとに5〜10のトップレビューはPDPカルーセルに依存してください。
  • **parent_asin**はバリアントツイスタリージョン(#twister / #variation_*)をスキャンする必要があります。これはバリアントを出荷する製品にのみ存在します。

検索ページのスナップショットは構造化された結果の配列を返します:

json Copy
{
  "query": "ワイヤレスヘッドフォン",
  "page": 1,
  "results": [
    {
      "rank": 1, "asin": "B0XXXXXXXX", "title": "...",
      "price": "$79.99", "rating": 4.5, "review_count": 12034,
      "sponsored": false, "prime": true,
      "url": "https://www.amazon.com/dp/B0XXXXXXXX"
    }
  ]
}

フル55フィールドスキーマが必要ですか? Amazon Scraper APIを使用してください

共伴製品であるScrapeless Amazon Scraper APIは、任意のASINに対して事前正規化された約55フィールドスキーマを返します: parent_asin, buybox_prices{initial, final, unit, discount}, 先祖カテゴリー全体のフルBSR(root_bs_rank, bs_rank, subcategory_rank)、number_of_sellers, seller_id, product_details[{type, values}], top_review, answered_questions, variations、その他 — 単一のセレクタを作成せず、追加のナビゲーションも不要です。

Scrapeless Scraping Browser(このガイド) Scrapeless Amazon Scraper API
出力 ライブDOM;evalをコーディングする 事前正規化されたJSON、約55フィールド
セレクタメンテナンス 呼び出し元で Scrapelessで
最適 ログイン済みビュー、カスタムフィールド、マルチステップフロー、地域制限のあるページ、カートへの自動追加、バリアントごとのナビゲーション 高ボリュームの製品インテリジェンス、MAP監視、再価格設定、構造化分析
正規化(is_availablebuybox_prices分割、BSR先祖トラバーサル) 呼び出し元の責任 サーバーサイドで処理
良い選択肢は… パイプラインが関心を持つフィールドのサブセットが正確に必要な場合、または非PDPフロー(カート、後で保存、ウィッシュリスト、定期購入) 保証されたスキーマを持つ標準的なAmazon製品オブジェクトが必要な場合

両方の製品は同じScrapelessアカウントと同じ住宅プロキシプールを共有します。使用例ごとに適切なツールを選択してください。パイプラインが両方を必要とする場合、きれいに組み合わせて使用できます。

フルスキーマリファレンスおよび例のペイロードについては、Amazon製品データをスクレイピングするおよびAmazonsolutions hubを参照してください。

検索カード出力についての正直な観察事項をいくつか述べておきます。スケールで実行する前に知っておく価値があります:

  • currencyフィールドは通常、マーケットプレイスドメインから推測できますが、常にページ内に表示されるわけではありません。価格文字列を解析するのではなく、セッションのマーケットプレイスコンテキストから派生させてください。
  • availabilityテキストはローカライズされています。ダウンストリームで使用する前に列挙型に正規化してください(InStock, OutOfStock, BackOrdered, LimitedStock, Unavailable)。
  • 検索結果カードのratingおよびreviewCountフィールドは、真新しいリストでは時折欠落している場合があります。これらはnullableとして扱ってください。

結論

AmazonをスケールでスクレイピングすることはもはやHTMLを取得するだけではありません。信頼性のあるレンダリング、ロケール対応のセッション、および頻繁なDOM変更とアンチボット圧力に耐えるワークフローが必要です。Scrapeless Scraping Browserは、これらの要素を生産準備のできた形で結びつけ、安定した製品データ、レビュー、および検索結果を収集しやすくします。

簡単で構造化されたAmazonデータがスケールで必要なチームには、Scrapeless Amazon Scraper APIが最適です。インタラクション、カスタムナビゲーション、またはブラウザーレベルの制御が必要なワークフローには、Scrapeless Scraping Browserがリアルなウェブページの上に構築するための柔軟性とレジリエンスを提供します。実際には、これら2つの製品は組み合わせて使用するのが最も効果的です。APIを利用して標準化された抽出を行い、ブラウザーを利用して複雑なフローやエッジケースに対応します。

スクレイピングして稼ぐ準備はできましたか?

私たちの活気あるコミュニティに参加して、無料プランを請求し、他の革新者とつながりましょう:

Scrapeless公式Discordコミュニティ
Scrapeless公式Telegramコミュニティ



FAQ

Q1: なぜ通常のスクレイパーやローカルPlaywrightセットアップの代わりにScrapeless Scraping Browserを使用するのですか?
Amazonのページは非常にダイナミックであり、アンチボットシステムによって保護されていることがよくあります。Scrapeless Scraping Browserは、実際のブラウザレンダリング、住宅プロキシ、フィンガープリンティング保護、セッション制御を1か所に提供し、生産的なスクレイピングにとってはるかに信頼性があります。

Q2: Amazonをスクレイピングするのにプロキシは必要ですか?
はい。データセンターのIP範囲はAmazonのエッジで厳しくフィルタリングされており、単一のIPからのリクエストパターンは迅速に制限されます。住宅プロキシ — --proxy-country--proxy-state--proxy-cityを介してScrapeless Scraping Browserに接続 — は安定した収集率を生み出します。詳細はProxy for Scraping AmazonScraping Amazon With Residential Proxiesを参照してください。

Q3: Amazon Scraper APIとはどのように異なりますか?
Amazon Scraper APIは、よく知られたエンドポイント(ASINのルックアップ、カテゴリページ、検索)に対して構造化されたJSONを返し、呼び出し元がブラウザをレンダリングすることなく利用可能です — 固定スキーマと抽出ロジックを必要としないパイプラインに理想的です。Scrapeless Scraping Browserは、ページにJavaScriptのレンダリングが必要な場合、ナビゲーションのシーケンスが重要な場合(フィルター、ドロップダウン、展開可能なセクション)、またはページネーションリクエスト間でセッションごとのクッキー/フィンガープリントの継続性が必要な場合に適切なツールです。

Q4: どのマーケットプレイスがサポートされていますか?
すべてのAmazonマーケットプレイスのドメインは単なるURLです — .com.co.uk.de.fr.it.es.co.jp.com.au.in.com.mx.com.brなどです。--proxy-country--timezone、および--languagesをマーケットプレイスの発信地域に合わせて調整します。実際には(ステップ6参照)、米国マーケットプレイスはScraping Browserでエンドツーエンドで機能します;非米国マーケットプレイスは現在Scrapeless Amazon Scraper APIによって最も適切にサービスされており、そこではマーケットプレイスのルーティングがサーバー側で処理されます。

Q5: AmazonがDOMを変更した場合はどうなりますか?
発見 → 抽出のフローが耐久性のある答えです:関連する領域のhtmlを最初に取得し、安定したアンカー(ASINデータ属性、ARIAラベル、セマンティックロールに基づくロケーター)を特定し、現在のDOMから派生したセレクターでevalをpopulateします — ハードコードされたクラス名ではなく。ページがリファクタリングされると、同じ発見ステップが自動的に適応します。

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ