ベストバイとターゲットをスクレイピング:店舗レベルの在庫と価格データ

大手小売の価格と在庫データは、単なる商品URLの背後ではなく、店舗選択とZIPコードの背後に存在します。店舗のスコープ設定と地理的ターゲティングを正しく行えば、ベストバイとターゲットはクリーンなJSONフィードになります。

ベストバイとターゲットは、スケールで価格と在庫をスクレイピングしようとするまでは普通の商品ページに見えますが、その答えはまだ選択されていない店舗に依存していることがわかります。価格は全国的なものですが、ZIPコードがそれをローカルにします。店舗をスコープしない限り、在庫の有無は意味がありません。店舗の選択と地理的ターゲティングを正しく行えば、これらの大手小売サイトはクリーンなJSONフィードに変わります。間違えると、全国的なプレースホルダー価格や「近くの店舗を確認」といったデータのない情報を集めることになります。このガイドでは、店舗レベルの在庫、地理的価格設定、隠されたエンドポイント、そして全体を維持するプロキシ設定について説明します。

最初の壁:地域と店舗

ベストバイはアメリカ、カナダ、メキシコの3つの市場にのみ対応しており、地域外のIPには商品ではなく国選択ページを表示します。それだけで間違った出口からのスクレイピングをブロックします。したがって、ステップ1はターゲット市場内の住宅IPです。ステップ2は店舗のスコープ設定です:両小売業者は、店舗またはZIPに特定の在庫と価格をキーとしています。設定しない限り、全国的なデフォルトを読んでいるのであり、実際に必要なローカルの真実を読んでいるわけではありません。

実用的なパターン:スティッキーセッションを開き、期間中に1つの住宅出口を固定し、店舗またはZIPを一度設定し、その店舗のすべてのSKUを同じIPで読みます。次の店舗に移動するときにIPを回転させ、読み取り間ではありません。それは実際の買い物客が行動する方法を模倣し、1つの場所で多くの商品を購入することで、サイトがその店舗の在庫と価格を返し続け、全国的なビューにリセットされることを防ぎます。

JSONを読み、DOMを読まない

両サイトは価格、評価、在庫をクライアント側でレンダリングするため、プレーンなリクエストから得られるHTMLはしばしばシェルであり、数値は後でページが呼び出す内部JSONエンドポイントから到着します。レンダリングされたDOMを解析するのは脆弱でしばしば空です。耐久性のあるアプローチは、ブラウザのネットワークタブでそのエンドポイントを見つけ、直接呼び出すことです:構造化されたフィールド(SKU、価格、店舗内在庫、配送可能性、ピックアップ可能性)を返し、HTML解析は一切不要で、ページのマークアップよりもはるかに頻繁に変わることはありません。スクレイパーが空のページを返すのを見たことがあるなら、これが通常の理由です。

import requests

# one sticky residential exit, pinned per store
SESSION_IP = "http://USER:PASS-session-store1841@gate.quantumproxies.io:8000"
proxies = {"http": SESSION_IP, "https": SESSION_IP}

s = requests.Session()
s.proxies = proxies
s.headers.update({
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/122.0.0.0 Safari/537.36",
    "Accept": "application/json",
})

# 1) scope a store (ZIP or store id) on this session first,
#    then 2) read the product/availability endpoint the page calls
r = s.get("https://www.example-retailer.com/api/v2/products/6565837",
          params={"storeId": "1841", "zip": "10001"}, timeout=20)
data = r.json()
print(data["sku"], data["price"], data["inStoreAvailability"])

プレースホルダーを除けば、形状がポイントです:店舗を設定し、データエンドポイントを叩き、テキストをスクレイピングするのではなくフィールドを読みます。スティッキーセッションを持つ住宅プロキシが店舗のスコープを固定するものです。

小売データのためのスティッキー住宅プロキシを取得

ZIPと店舗IDを住宅プロキシを通じて設定し、JSONを読む前にベストバイとターゲットのリクエストパイプラインを店舗スコープで設定する図
在庫と価格は店舗ごとに回答されます — スティッキーセッションで1店舗ごとに1つの住宅IPを固定し、JSONエンドポイントを読みます。

地理的価格設定:同じSKU、異なる数字

大手小売の価格は国全体で一様ではありません。クリアランス、地域のプロモーション、店舗特有の値下げにより、同じSKUがZIPごとに異なる価格を持つことがあり、店舗内の在庫は本質的にローカルです。1つの場所からスクレイピングすると、はるかに大きな絵の一部しか得られず、ダラスの買い物客とシアトルの買い物客に正確でなければならない競争価格モニタリングや再入荷アラートには役立ちません。

したがって、意図的に場所を駆動します。ターゲットZIPまたは店舗IDのリストを維持し、可能であれば同じ都市または州からの地域内住宅出口とペアリングします。当社のロケーションカバレッジは、200以上の国を都市と州のターゲティングでカバーしており、これによりベストバイのロサンゼルスの価格とターゲットのシカゴの在庫を同じランで読むことができます。これは、真剣な競争価格モニタリング再入荷モニタリングの背後にある同じディシプリンです。

負荷を分散させるか、ブロックされる一日を過ごすか

数千のSKUを要求する単一のIPは、ブロック、CAPTCHA、またはサブネット禁止への最速の道です。両小売業者はIPごとのリクエスト速度を監視しています。修正は、回転する住宅プール全体に作業を分散させ、1つの出口が疑わしいボリュームを持たないようにしながら、店舗の読み取りの期間中は1つのIPを固定することです。並行性はプールレベルであり、セッションレベルではありません。各セッションを買い物客のようにペースを取り、幅広さ — 多くのIPが少しずつ行う — がスループットを提供します。これに基づいて再入荷ツールを構築する場合、再入荷ボットのための最良のプロキシのまとめはプールのサイズ設定をカバーしています。

IP回転、店舗スコープ、JSON解析におけるナイーブな大手小売スクレイパーとプロダクションスクレイパーの比較チェックリスト
ナイーブなベストバイまたはターゲットスクレイパーを壊す5つのこと — そしてそれぞれのプロダクション修正。

APIルートが勝つとき

住宅プロキシを通じた直接リクエストは、最も制御可能でリクエストごとのコストが最も低い — エンドポイントを知り、それを維持できるようになったら理想的です。しかし、ターゲットがより重いアンチボット防御を追加し、すべてをJavaScriptでレンダリングするか、単にエンドポイントを監視したくない場合、Scraper APIはショートカットです:商品URLを地理パラメータと共に送信し、IPを回転させ、実際のブラウザ指紋を持たせ、JSをレンダリングし、構造化データを返します。少しのリクエストごとのコストを取引し、メンテナンスをゼロにし、難しい日により高い成功率を得ます。JavaScriptが多いサイトのガイドに示されている正直な分割:クリーンで既知のエンドポイントには生のリクエストと住宅プロキシ、防御がエスカレートしたときにはAPI。

よくある質問

ベストバイとターゲットの商品データをスクレイピングできますか?

はい — 両方とも公開されている商品、価格、在庫データを公開しており、その多くはページが呼び出す内部JSONエンドポイントを通じて提供されています。地域内の住宅IPが必要です(ベストバイは米国、カナダ、メキシコのみを提供)し、店舗またはZIPをスコープする必要があります。なぜなら、在庫と多くの場合価格は商品URLごとではなく店舗ごとに回答されるからです。

なぜ全国価格が店舗価格の代わりに表示されるのですか?

セッションで店舗が選択されていないためです。大手小売サイトは、ZIPまたは店舗IDがリクエストをスコープするまで全国的なデフォルトを返します。最初にスティッキーセッションで位置を設定し、その店舗の読み取りには同じ住宅IPを維持し、エンドポイントがローカル価格と店舗内在庫を返します。

大手小売のスクレイピングにはどのプロキシが最適ですか?

スティッキーセッションと都市または州の地理ターゲティングを持つ住宅プロキシ。店舗をスコープする間に一貫性を保つ地域内の出口が必要で、その後SKUボリュームを分散させるためにプール全体を回転させます。データセンターIPは安価ですが、これらのターゲットでは壁やCAPTCHAに挑戦されることが多いです。

ベストバイやターゲットのスクレイピングは合法ですか?

公開されている商品と価格データを収集することは、多くの法域で一般的にフェアユースとして扱われますが、サービス利用規約と現地法は異なります。これは情報提供であり、法的アドバイスではありません — 大規模な収集や個人データを含むものを行う前に、各サイトの利用規約を確認し、専門家に相談してください。

大手小売データはページ型ではなく店舗型です。店舗をスコープし、地理を駆動し、JSONを読み、クリーンな住宅プール全体に負荷を分散させる — これら4つを行えば、ベストバイとターゲットは全国的なプレースホルダーの壁ではなく、信頼できる価格と在庫フィードになります。

Scraper APIで小売データを大規模にスクレイピング