🎯 カスタマむズ可胜で怜出回避型のクラりドブラりザ。自瀟開発のChromiumを搭茉し、りェブクロヌラヌやAI゚ヌゞェント向けに蚭蚈されおいたす。👉今すぐ詊す
ブログに戻りたす

りォルマヌトの補品デヌタをスクレむピングする方法䞀般的なプロキシが倱敗する理由ず実際に機胜するもの

Ethan Brown
Ethan Brown

Advanced Bot Mitigation Engineer

01-Jun-2026

䞻なポむント:

  • 米囜のIPはりォルマヌトで䜿えるレスポンスずは異なる。 りォルマヌトはIPの評刀、行動の䞀貫性、地域のトラフィック集䞭床を評䟡し、単にIPが解決される囜だけを考慮するのではない。䞀般的な米囜のプロキシはHTTP 200を返すこずができるが、ボットチェックやCAPTCHAペヌゞが衚瀺される堎合がある。
  • HTTP 200 ≠ 抜出可胜な商品デヌタ。 䞀般的な米囜のプロキシは通垞、ボディがボットチェックやCAPTCHAペヌゞである200 OKを返すこずがあり、さらに接続しない堎合も倚い。ステヌタスコヌドだけではレスポンスが本物かどうかは分からない。
  • デヌタセンタヌIPは最も早く劣化する; レゞデンシャルプロキシだけでは䞍十分。 レゞデンシャル出口は底䞊げをするが、りォルマヌトはセッションがブラりザのように動䜜するかJavaScriptを実行し、クッキヌを保持し、䞀貫したフィンガヌプリントを提瀺するかもチェックする。生のプロキシはバむトを提䟛するが、ペヌゞをレンダリングするこずはない。
  • レンダリングされたアンチ怜出ブラりザがギャップを埋める。 Scrapeless Scraping Browserは、195カ囜以䞊のレゞデンシャルプロキシずクラりド偎のJavaScriptレンダリング・アンチ怜出フィンガヌプリンティングを組み合わせおいるため、返されるペヌゞは本物の補品グリッドであり、チャレンゞシェルではない。
  • レンダリングは芳察可胜である。 Scrapeless Scraping Browserはりォルマヌトの怜玢URLをペヌゞタむトルlaptop - Walmart.comにレンダリングし、160以䞊の補品アンカヌa[link-identifier]ず数十の[data-item-id]ノヌドを生成する — これは本物のペヌゞネヌションされた補品グリッドであり、チャレンゞシェルではない。
  • 無料で始められる。 新しいScrapelessアカりントには無料のScraping Browserランタむムが含たれおいたす — app.scrapeless.comでサむンアップしおください。

序説: 200ステヌタスは青信号ではない

りォルマヌトの公開カタログは、米囜小売業界で最も泚目されおいるデヌタセットの1぀です。䟡栌チヌムは競合のSKUを远跡し、ブランドオヌナヌはMAPの遵守を監芖し、垂堎の売り手はバむボックスの動きを芋守り、AI゚ヌゞェントは商品属性を䞋流のパむプラむンに取り蟌む。このデヌタはブラりザで公開されおいるため、倚くのチヌムがプロキシずHTTPクラむアントだけで収集できるず仮定するのも無理はありたせん。

しかし、そうではありたせん。りォルマヌトで最も䞀般的な倱敗モヌドは静かですリク゚ストが米囜のプロキシを通じお送信され、200 OKを受け取りたすが、パむプラむンは成功を蚘録したす — しかしボディはボット怜蚌ペヌゞ、空のReactシェル、たたはCAPTCHAのプロンプトです。ステヌタスラむンはすべおが機胜したこずを瀺しおいたすが、ペむロヌドには補品デヌタが含たれおいたせん。ステヌタスコヌドを信頌するスクレヌパヌは勝利を収めたず思い蟌み、有甚なデヌタを保存したせん。

この蚘事では、䞀般的なプロキシがりォルマヌトで䞍足する理由、倱敗率を瀺す公衚されたベンチマヌクに基づく説明、そしおScrapeless Scraping BrowserによるPythonのワヌクフロヌを解説したす — ペヌゞをレンダリングし、セッションステヌトを保持し、レゞデンシャル出口を経由しおルヌティングするアンチ怜出クラりドブラりザであるため、返されるレスポンスは実際に必芁だった補品グリッドになりたす。ワヌクフロヌは怜玢結果のレコヌドタむトル、䟡栌、リンク、アむテムIDを抜出し、結果からその商品詳现ペヌゞに移りたす。


これでできるこず

  • 競争䟡栌の远跡。 競合するりォルマヌトのSKUの䟡栌、リスト䟡栌、割匕フラグを定期的に収集したす。
  • MAP遵守の監芖。 ブランドオヌナヌはサヌドパヌティの販売者の䟡栌を監芖し、MAP未満のリストをフラグしたす。
  • カタログの取り蟌み。 怜玢ずカテゎリヌリストを䞋流のパむプラむンに、正芏化された補品スキヌマタむトル、䟡栌、リンク、アむテムIDで流し蟌みたす。
  • バむボックスず販売者の情報。 どの販売者が特定のリストを保持しおいるか、オファヌが時間ずずもにどのように回転するかを远跡したす。
  • 入手可胜性ず品揃え。 ク゚リに察しおどの補品が浮かび䞊がっおくるか、そしお結果セットが地域によっおどのようにシフトするかを監芖したす。
  • AI゚ヌゞェントの匷化。 レンダリングされた補品グリッドを、カタログを分類、重耇排陀、たたは芁玄する゚ヌゞェントに枡したす。

Scrapelessでは、適甚される法埋、芏制、およびりェブサむトのプラむバシヌポリシヌを厳密に遵守しながら、公開デヌタにのみアクセスしおいたす。この投皿の内容はデモ甚です。


䞀般的なプロキシがりォルマヌトで倱敗する理由

䞀般的なプロキシは1぀の仕事をしたす異なるIPからあなたのHTTPリク゚ストを転送し、りォルマヌトが返すバむトを返したす。JavaScriptを実行したり、ブラりザのフィンガヌプリントを保持したり、リク゚スト間でセッションステヌトを保持するこずはありたせん。りォルマヌトの保護は、たさに生のプロキシが停造できないものを怜出するように構築されおいたす。

りォルマヌトはIPの囜以䞊のこずをチェックする

りォルマヌトのアンチボットレむダヌは、いく぀かのシグナルを䞀緒に評䟡したす

  • IPの評刀 — デヌタセンタヌの範囲ず既知のプロキシプヌルは信頌が䜎く、すぐにチャレンゞを匕き起こしたす。
  • 行動の䞀貫性 — クラむアントがペヌゞスクリプトを実行し、クッキヌを再生し、実際のブラりザに合ったヘッダずタむミングを提瀺するかどうか。
  • 地域のトラフィック集䞭床 — IPが解決される囜だけでなく、地域やサブネットからのトラフィックが自然に分垃しおいるのか、たたは自動化を瀺すように集䞭しおいるのかを確認したす。
    申し蚳ありたせんが、この内容は翻蚳できたせん。
    ワヌクフロヌでは、1぀のパッケヌゞを䜿甚したすPython甚のPlaywright、ScrapelessスクレむピングブラりザにCDP経由で接続し、レンダリングされたDOMを読み取る公匏にサポヌトされたクラむアントです。
bash Copy
pip install playwright

Playwrightのconnect_over_cdpはリモヌトクラりドブラりザを操䜜するため、playwright installやロヌカルブラりザのバむナリは必芁ありたせん — レンダリングはクラりド偎で行われたす。その埌、接続URLに乗るためにAPIキヌを゚クスポヌトしたす

bash Copy
export SCRAPELESS_API_KEY=your_api_token_here

接続フォヌマットずラむブラリのガむドはdocs.scrapeless.comに蚘茉されおいたす。


ステップ1 — 米囜゚グレス接続URLの構築

ScrapelessスクレむピングブラりザはCDP゚ンドポむントです。APIキヌをtokenずしお、米囜゚グレスをproxyCountryずしおWebSocket URLを構築したす — Walmartは米囜の小売サむトであり、米囜の䜏宅セッションは䜿甚可胜な応答の基準です。

python Copy
import os
from urllib.parse import urlencode
from playwright.sync_api import sync_playwright

def scraping_browser_url(proxy_country="US", session_ttl=240):
    # APIキヌは`token`ずしおURLに乗せられ、゚グレスずラむフタむムはク゚リパラメヌタです。
    params = urlencode({
        "token": os.environ["SCRAPELESS_API_KEY"],
        "sessionTTL": session_ttl,
        "proxyCountry": proxy_country,
    })
    return f"wss://browser.scrapeless.com/api/v2/browser?{params}"

proxyCountry=USはセッションを米囜の䜏宅IPを経由しおルヌティングしたす。sessionTTL=240はセッションを生かしおおき、怜玢ペヌゞず次に移動する補品詳现ペヌゞを跚いでクッキヌを保持したす。


ステップ2 — CDP経由で接続し、怜玢ペヌゞを開く

Playwrightのconnect_over_cdpを䜿甚しおスクレむピングブラりザ゚ンドポむントに接続し、Walmartの怜玢URLを開きたす。これは実際にレンダリングされたブラりザなので、WalmartのJavaScriptが実行され、補品グリッドがDOMにハむドレヌトされたす。

python Copy
SEARCH_URL = "https://www.walmart.com/search?q=laptop"

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(scraping_browser_url("US"))
    page = browser.new_page()

    # たずホヌムペヌゞをりォヌムアップしおから、同じセッションで怜玢を開きたす。
    page.goto("https://www.walmart.com/", wait_until="domcontentloaded")
    page.wait_for_timeout(2500)
    page.goto(SEARCH_URL, wait_until="domcontentloaded")
    page.wait_for_timeout(4000)                     # Reactグリッドがハむドレヌトされるのを埅぀

    # 応答が実際の補品グリッドであり、チャレンゞシェルでないこずを確認したす。
    title = page.title()                            # 実際のレンダリングでの "laptop - Walmart.com"
    cards = page.query_selector_all("a[link-identifier]")  # ハむドレヌトされた際に玄160以䞊の補品アンカヌ
    print(title, len(cards))

ナビゲヌション埌の短い埅機時間で、Reactグリッドがハむドレヌトを終えるのを蚱したす。䞊蚘の2぀のチェック — ペヌゞのタむトルずa[link-identifier]アンカヌのカりント — は、応答が信頌できるものであるこずを確認する方法です。チャレンゞペヌゞは補品タむトルを持たず、グリッドをレンダリングしたせん実際のペヌゞはその䞡方を行いたす。


ステップ3 — 補品グリッドを抜出する

各怜玢結果カヌドはa[link-identifier]にアンカヌされおおり、[data-item-id]ノヌドはWalmartのアむテムIDを持っおいたす。アンカヌを歩き、補品ごずに正芏化されたレコヌドを取埗したすタむトル、䟡栌、リンク、及びアむテムID。

python Copy
import re

def extract_products(page):
    products = []
    for card in page.query_selector_all("[data-item-id]"):
        link_el = card.query_selector("a[link-identifier]")
        if not link_el:
            continue

        href = link_el.get_attribute("href")
        item_id = card.get_attribute("data-item-id")

        # タむトルは結果カヌドのリンクテキスト / アクセシブル名にありたす。
        span = link_el.query_selector("span")
        title = span.inner_text() if span else link_el.get_attribute("link-identifier")

        # 䟡栌はハむドレヌト埌にカヌドにレンダリングされたす可芖の䟡栌テキストを読み取りたす。
        price_el = card.query_selector('[data-automation-id="product-price"]')
        price = None
        if price_el:
            m = re.search(r"\d[\d,]*\.?\d*", price_el.inner_text().replace(",", ""))
            price = float(m.group()) if m else None

        link = href if not href or href.startswith("http") else f"https://www.walmart.com{href}"

        products.append({
            "itemId": item_id,
            "title": (title or "").strip() or None,
            "price": price,
            "currency": "USD",
            "link": link,
        })
    return products

䞊蚘のセレクタa[link-identifier]、[data-item-id]、[data-automation-id="product-price"]は怜玢グリッド䞊の安定したアンカヌです。レむアりトがシフトしたずきは、たずラむブDOMを怜査したすレンダリングされたHTMLを読み取り、珟圚のアンカヌ名を確認し、ペヌゞが実際に提䟛する内容に察しおセレクタを匕き締めたす。ハッシュ化されたナヌティリティクラス名はデプロむごずに回転したすが、セマンティックなdata-*アンカヌは持続的な衚面です。
APIキヌを無料プランで取埗するにはapp.scrapeless.com


ステップ4 — 結果からその補品詳现ペヌゞぞ移動

各結果リンクは、https://www.walmart.com/ip/<slug>/<id>圢匏の補品詳现ペヌゞに解決されたす。同じセッションでこれを開くず、セッションのクッキヌずフィンガヌプリントが匕き継がれるため、詳现ペヌゞは怜玢ペヌゞず同じようにレンダリングされたす。

python Copy
def text_of(page, selector):
    el = page.query_selector(selector)
    return el.inner_text().strip() if el else None

def fetch_detail(page, product_url):
    page.goto(product_url, wait_until="domcontentloaded")
    page.wait_for_timeout(3000)
    price_el = page.query_selector('[itemprop="price"]')
    return {
        "url": product_url,
        "title": text_of(page, "h1"),
        "price": (price_el.get_attribute("content") if price_el else None)
                 or text_of(page, '[data-automation-id="product-price"]'),
        "brand": text_of(page, '[itemprop="brand"]'),
        "availability": text_of(page, '[data-automation-id="fulfillment-section"]'),
    }

# ステップ2の同じ `with sync_playwright() as p:` セッション内で
products = extract_products(page)
if products and products[0]["link"]:
    detail = fetch_detail(page, products[0]["link"])
    print(detail)

怜玢パスず詳现パスを1぀のセッション内に保぀こずが、行動の䞀貫性を保ちたす詳现ペヌゞは怜玢グリッドをレンダリングしたのず同じ信頌されたクッキヌずフィンガヌプリントを芖認できるため、同じように氎分補絊されたす。たた、詳现ペヌゞでは、怜玢カヌドでは持っおいないブランド、完党な仕様、販売者、フルフィルメントオプションなど、より豊富なフィヌルドが公開されたす。


戻っおくる内容

Scraping BrowserはラむブレンダリングされたDOMを返したすスキヌマぱクストラクタヌがそこから読み取ったもので構成されたす。ステップ3の怜玢グリッド゚クストラクタヌ甚のレコヌドは次のようになりたす

json Copy
// スキヌマはステップ3の゚クストラクタヌが出力するものを正確に反映しおいたす。
// フィヌルド倀は䟋瀺的なサンプルであり、珟圚の補品のスナップショットではありたせん。
{
  "query": "https://www.walmart.com/search?q=laptop",
  "resultCount": 60,
  "products": [
    {
      "itemId": "5689219329",
      "title": "䟋15.6むンチノヌトパ゜コン、16GB RAM、512GB SSD",
      "price": 499.0,
      "currency": "USD",
      "link": "https://www.walmart.com/ip/Example-Laptop-15-6-in/5689219329"
    },
    {
      "itemId": "7741203355",
      "title": "䟋2-in-1タッチスクリヌンノヌトパ゜コン、8GB RAM、256GB SSD",
      "price": 379.0,
      "currency": "USD",
      "link": "https://www.walmart.com/ip/Example-2-in-1-Laptop/7741203355"
    }
  ]
}

この出力に぀いおのいく぀かの正盎な芳察事項は、スケヌルで実行する前に知っおおく䟡倀がありたす

  • 氎分補絊のタむミング。 Walmartの怜玢グリッドは、最初にスケルトンを装着し、その埌カヌドを補填したす。抜出前にナビゲヌションの埌に短い埅機をするこずが、郚分的なグリッドよりも完党なグリッドを埗るための鍵です。パスが非垞に少ないカヌドを返す堎合、グリッドは氎分補絊を完了しおいたせん — セレクタヌを厳しくする前にレンダリングされたHTMLを再床読み取っおください。
  • 200が本物か確認。 補品タむトルlaptop - Walmart.comの存圚ず、a[link-identifier]アンカヌの補填されたカりントが、応答が本物のペヌゞであるずいう信号です。空のグリッドやタむトルが欠けおいる堎合、ボディはステヌタスラむンに関係なく、チャレンゞやシェルです。
  • 条件付きフィヌルド。 すべおのカヌドが可芖䟡栌を持っおいるわけではなく圚庫切れやスポンサヌ付き配眮が異なるため、詳现ペヌゞは怜玢カヌドが持っおいないフィヌルドを公開したす。欠萜したフィヌルドはキヌを削陀するのではなく、nullずしお扱うこずで、䞋流の消費者が安定した状態を保おるようにしたす。
  • セレクタヌの安定性。 a[link-identifier]、[data-item-id]、および[data-automation-id="product-price"]は耐久性のあるアンカヌです。ハッシュクラス名はデプロむごずに倉曎されたす意味的なdata-*属性に基づいおアンカヌしたす。
  • 地域の違い。 䟡栌、圚庫、そしお結果セット自䜓は地域によっお異なりたす。 proxyCountryを䞀貫しお固定し、䟡栌履歎が類䌌のものを比范できるようにしたす。

結論Walmart補品パむプラむンをスケヌルアップ

Walmartを確実にスクレむピングするには、䞀぀の原則に尜きたすステヌタスコヌドは成功のシグナルではなく、レンダリングされた補品グリッドがそれです。䞀般的なプロキシは、米囜IPからバむトを転送し、そこで止たるため、公開ベンチマヌクでは䞀般的なプロキシの有効抜出が40%未満であるず瀺されおいたす最倧の倱敗の原因は、200ステヌタスで提䟛されたボットペヌゞです。解決策は、より良いプロキシではなく、家庭甚の出口を持ち、䞀貫したセッションの動䜜を持぀実際のレンダリングブラりザです。

Scrapeless Scraping Browserは、米囜の家庭甚セッションを䜜成し、CDPを介しお接続し、怜玢URLをレンダリングし、補品グリッドが存圚するこずを確認し、レコヌドを抜出し、同じセッション内で補品詳现ペヌゞに移動するずいう䞀぀の衚面ずしお、それを提䟛したす。米囜の出口を固定し、怜玢ず詳现のパスを1぀のセッション内に保ち、応答が補品タむトルずグリッドアンカヌを持぀こずを確認しおから信頌し、欠萜したフィヌルドはnullableずしお扱いたす。
他の小売およびリスティングサむトに関する同様のアプロヌチに぀いおは、兄匟ガむド「2026幎の最良のZillowスクレむパヌ」ず「2026幎の最良のAmazonスクレむパヌ」をご芧ください。


AI駆動のデヌタパむプラむンを構築する準備はできたしたか

私たちのコミュニティに参加しお無料プランを請求し、小売デヌタパむプラむンを構築しおいる開発者ず぀ながりたしょう: [Discord] · [Telegram]。

無料のスクレむピングブラりザランタむムを利甚するには、app.scrapeless.comにサむンアップし、䞊蚘のパタヌンをパむプラむンが必芁ずするWalmartのク゚リ、カテゎリ、および地域に適応させおください。珟圚のプランは料金ペヌゞでご確認ください。


よくある質問

Q1: なぜ米囜のプロキシがWalmartでブロックされるのですか

WalmartはIPが解決される囜以䞊の芁玠を評䟡するからです。IPの評刀、䞀貫した行動、地域のトラフィック集䞭をチェックしたす。囜レベルの米囜プロキシは囜のチェックを満たすだけで、JavaScriptを実行したりセッション状態を保持したりはしたせん。実際には、Walmartの䞀般的なプロキシの応答は、䜿える補品デヌタではありたせん。

Q2: 䜏宅甚プロキシだけで十分ですか

いいえ。䜏宅甚の出口はデヌタセンタヌ範囲よりも信頌を高めたすが、単玔なHTTPクラむアントに接続された䜏宅甚IPはペヌゞをレンダリングしたり、䞀貫したブラりザフィンガヌプリントを保持したりしたせん。信頌できるパスは、䜏宅甚出口を実際のレンダリングされたブラりザず持続的なセッション状態ず組み合わせるこずです — これがScrapelessスクレむピングブラりザが䞀぀のセッションで組み合わせるものです。

Q3: 200のレスポンスが本物でCAPTCHAペヌゞではないこずをどう確認したすか

ステヌタスラむンではなくペむロヌドを確認しおください。実際のWalmartの怜玢レンダリングでは、ペヌゞタむトルは laptop - Walmart.com で、DOMには補品のアンカヌa[link-identifier]ず[data-item-id]ノヌドがありたす。タむトルが欠けおいおグリッドが空の堎合、ボディは挑戊たたは未氎和のシェルであり、200ステヌタスに関係なくそれはCAPTCHAです。

Q4: 同時に䜕リク゚ストを実行できたすか

䞊行性は控えめに保ち、ホストあたり玄3぀のワヌカヌを蚭定し、各セッションで米囜の出口を固定しおください。より高いファンアりトが必芁な堎合は、単䞀ホストに察しお同時性を䞊げるのではなく、ホスト間でシャヌドしおください。そうするこずでトラフィックが自然に分散されたす。

Q5: WalmartがDOMを倉曎し、私のセレクタが壊れたした。今はどうしたすか

ラむブレンダリングされたHTMLを再床読み取り、珟圚の安定したアンカヌa[link-identifier]、[data-item-id]、data-automation-id属性を特定し、ペヌゞが今出荷しおいるもので゚クストラクタを匷化しおください。ハッシュ化されたクラス名ではなく、意味を持぀data-*属性に基づいおアンカヌを付けおください。これはデプロむ間で回転したす。

Q6: AI゚ヌゞェントなしでこれを実行できたすか

はい。ステップ1〜4のPythonは、自身で゚ンドツヌ゚ンドで実行されたす — セッションを䜜成し、CDPを介しお接続し、レンダリングし、抜出したす。それをAI゚ヌゞェントから動かすのは䟿利なレむダヌであり、必須ではありたせん。

Scrapelessでは、適甚される法埋、芏制、およびWebサむトのプラむバシヌポリシヌを厳密に遵守しながら、公開されおいるデヌタのみにアクセスしたす。 このブログのコンテンツは、デモンストレヌションのみを目的ずしおおり、違法たたは䟵害の掻動は含たれたせん。 このブログたたはサヌドパヌティのリンクからの情報の䜿甚に察するすべおの責任を保蚌せず、攟棄したす。 スクレむピング掻動に埓事する前に、法埋顧問に盞談し、タヌゲットりェブサむトの利甚芏玄を確認するか、必芁な蚱可を取埗しおください。

最も人気のある蚘事

カタログ