Tony Wang6 分で読めますWalmart のスクレイピング方法 2026年版(API & Python)
2026年に Walmart をスクレイピングする方法 — 検索、商品詳細、レビュー — DIY、ノーコード、構造化 API の3通りを、セルフサービス API がないという法的な実情とともに解説します。
2026年に Walmart をスクレイピングする最も手早い方法は、walmart.com の裏側にある内部エンドポイントをリバースエンジニアリングするのではなく、正規化された JSON — 検索結果、商品詳細、レビュー — を返す構造化 API を呼び出すことです。Walmart には外部開発者向けのセルフサービス型公開 API がありません。旧 Open API は新規サインアップを停止しており、現行の Marketplace API は自分の出品を管理する承認済み出品者向けにのみ存在します。このガイドでは3つのアプローチすべてを取り上げ、それぞれが何を返し、DIY がどこで破綻するか、そして法律上の実情を最初に解説します。
なぜ Walmart をスクレイピングするのか?
- 価格モニタリング — 特定商品の
priceとprice_textが時間とともにどう動くかを追跡できます。 - 競合トラッキング — カテゴリ内のアソートメント、ブランドミックス、
seller_name(Walmart.com か サードパーティのマーケットプレイス出品者か)を比較できます。 - 市場調査 — あるクエリに対して検索がどのように商品をランク付けするか、
availabilityがどう変化するかを確認できます。 - レビューと評判のリサーチ —
rating、review_count、星別の内訳を分析し、商品が実際にどう受け止められているかを把握できます。 - AI パイプライン — ページのパース層なしで、正規化された商品・レビュー JSON をエージェントや RAG パイプラインに投入できます。
Walmart をスクレイピングするのは合法か?
選択肢1: Python で DIY する(そしてなぜ破綻するか)
Walmart のストアフロントは静的な HTML ではなく内部 API から描画されるため、DIY のスクレイパーはサイト自身のフロントエンドが行うのと同じ呼び出しをリバースエンジニアリングする必要があります。
import requests
# Walmart's storefront calls internal, undocumented endpoints —
# not a licensed public API, and robots.txt disallows /api/ and /search
resp = requests.get(
"https://www.walmart.com/ip/Apple-AirPods-Pro-2/5689919121",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
デモは動きますが、その後破綻します。
- 利用規約が明示的。 Walmart は「ロボット、スパイダー…スクレイピング、データマイニング」ツールを直接名指しし、サイトコンテンツの自動収集には事前の書面による同意を求めています。
- robots.txt がスクレイパーに必要なパスを禁止している。
/api/、/search、/typeahead/はいずれも Walmart 自身の指示によりクローラー禁止です。 - エッジには本格的な、PerimeterX クラスのアンチボットがある。 Walmart はストアフロントの前段でボット検出とチャレンジページを稼働させており、素朴な
requests呼び出しはすぐにブロックされるか CAPTCHA 形式のインタースティシャルを提示されます。 - 公式で文書化された商品 API がない。 すべてのページの背後にあるデータは、外部利用向けに公開・ライセンスされていない内部エンドポイントから来ており、その形状はリデザインのたびに予告なく変わります。
- すべてが商品ごとにファンアウトする。 完全な詳細とレビューはそれぞれ
item_idをキーとした別々の呼び出しの先にあります。1回のページロードで完全な商品レコードが得られることはありません。
選択肢2: ノーコード/既製ツール
一回限りの Walmart 取得向けにマーケットプレイスのスクレイパーアクターは存在しますが、DIY と同じ利用規約上のリスクとアンチボットの脆さを引き継ぎ、それでも完全な商品レコードを組み立てるには検索・詳細・レビューの各呼び出しを自分でつなぎ合わせる必要があります。
選択肢3: 構造化された Walmart API
繰り返し実行できる構造化されたワークフローには、Walmart スクレイピング API が正規化された JSON を返し、ページのパースやエッジ防御のメンテナンスは不要です。カタログを検索するには次のようにします。
curl "https://api.crawlora.net/api/v1/walmart/search?q=wireless+earbuds" \
-H "x-api-key: $CRAWLORA_API_KEY"
続いて item_id を解決し、詳細とレビューを Python で取得します。
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/walmart"
hits = requests.get(f"{base}/search", headers=h, params={"q": "wireless earbuds", "page": 1}).json()["data"]["items"]
item_id = hits[0]["item_id"]
product = requests.get(f"{base}/product/{item_id}", headers=h).json()["data"]
reviews = requests.get(f"{base}/product/{item_id}/reviews", headers=h).json()["data"]
検索レスポンスは正規化された JSON です(実際のフィールドはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"query": "wireless earbuds",
"page": 1,
"total_results": 1200,
"items": [
{
"item_id": "6543706564",
"title": "Bose QuietComfort Earbuds, White Smoke",
"brand": "Bose",
"canonical_url": "https://www.walmart.com/ip/6543706564",
"price": 179,
"price_text": "$179.00",
"currency": "USD",
"availability": "IN_STOCK",
"seller_name": "Walmart.com",
"rating": 4.4,
"review_count": 1203
}
]
}
}
page と sort は /walmart/search の任意クエリパラメータなので、クエリを変えずに完全な結果セットをページングしたり、価格や評価で再ソートしたりできます。商品詳細は価格、在庫状況、属性を item_id ごとにネストして返します。
{
"data": {
"item_id": "5689919121",
"title": "Apple AirPods Pro 2",
"brand": "Apple",
"price": 169,
"price_text": "$169.00",
"availability": "IN_STOCK",
"seller_name": "Walmart.com",
"rating": 4.6,
"review_count": 17823,
"attributes": { "Brand": "Apple" }
}
}
そしてレビューは集計内訳と個別のエントリを返します。
{
"data": {
"average_rating": 4.3,
"total_review_count": 2452,
"recommended_percent": 87,
"rating_counts": { "five_star": 1698, "four_star": 273, "three_star": 150, "two_star": 116, "one_star": 215 },
"reviews": [
{ "rating": 5, "text": "Love these earbuds.", "author": "MusicFan", "submission_date": "11/30/2025", "review_id": "406499690" }
]
}
}
item_id ごとに1行ずつ保存し、スケジュールを組んで再実行すれば価格と在庫状況の変化を追跡できます。
収集できるもの
エンドポイントごとの公開カタログデータです。ページ分割・ソート可能な検索結果(items、total_results、page)、商品詳細(title、brand、price、price_text、availability、seller_name、rating、review_count、description、attributes)、そしてレビューデータ(average_rating、total_review_count、recommended_percent、星別の rating_counts、rating/text/author/submission_date を持つ個別の reviews)です。あくまで公開されているカタログデータのみです。
制約
- セルフサービス型の公開 API がない。 Walmart Open API は新規登録を停止しており、Marketplace API は承認済み出品者とソリューションプロバイダーに限定されています。ここには一括カタログアクセスへのライセンス済みの道はありません。
- エッジには本格的なアンチボットがある。 Walmart はストアフロントの前段で PerimeterX クラスのボット検出とチャレンジページを稼働させており、素朴なリクエストはすぐにブロックされます。
- 利用規約が明示的。 Walmart はロボット、スパイダー、スクレイピング/データマイニングツールを直接名指しし、サイトコンテンツを AI/ML の訓練に使うことも別途制限しています。
item_idごとのファンアウト。 完全な詳細とレビューはそれぞれitem_idをキーとした別々の呼び出しが必要です。完全な商品レコードを返す単一の呼び出しはありません。- 店舗別・郵便番号別の価格がない。 検索と商品のレスポンスは、店舗ごとのばらつきではなく、全国一律の価格と在庫状況を1つ返すだけです。
- 公開データのみ。 これは Walmart がすでに公開しているカタログデータです。アカウント、注文、ログイン後の情報に到達する手段や、カタログ全体を一括ダウンロードする手段では決してありません。
どこで使われるか
- 価格と特売の追跡 — 追跡対象商品の
priceとprice_textの動きを監視し、値下げにフラグを立てます。 - 競合ベンチマーキング — アソートメントとブランドミックスを他の大型量販店やマーケットプレイスと比較します。
- レビューのリサーチ — 商品別に
rating、review_count、星分布のトレンドを追跡します。 - ソーシングと市場調査 — どの出品者(
seller_name)が高ボリュームな検索語で上位表示を獲得しているかを把握します。
出典
収集を始める
まずは無料でお試しください: 任意の公開 URL を無料ウェブスクレイパーに通すか、アンチボットチェッカーでサイトがボットをブロックするかどうかを確認できます。サインアップ不要です。
検索と商品のエンドポイントをプレイグラウンドで試し、API ドキュメントでスキーマを確認し、料金をご覧ください。「セルフサービス API なし、限定的な開発者プログラム」という同じパターンを持つ別の大手小売業者については、Amazon の商品データをスクレイピングする方法を、同じ問題の大型量販店版については、Target をスクレイピングする方法やCostco をスクレイピングする方法をご覧ください。あわせてウェブスクレイピングは合法かもご覧ください。
よくある質問
Walmart には商品データや検索データ向けの公式公開 APIがありますか?
外部開発者向けにはありません。旧 Walmart Open API(WalmartLabs)は新規登録を停止しており、そのアフィリエイトエンドポイントも廃止されています。developer.walmart.com の現行 Walmart Marketplace API は、自分の商品、在庫、価格、注文を管理する承認済みの出品者とソリューションプロバイダーに限定されており、カタログ検索や商品詳細データへのサードパーティアクセスは提供していません。
Walmart をスクレイピングするのは合法ですか?
タイトル、ブランド、価格といった公開されている商品の事実には著作権が及ばず、hiQ Labs v. LinkedIn は公開データへのアクセスが CFAA 違反にはならないと判示しました。しかし Walmart の利用規約は、Walmart の事前の書面による明示的な同意なしに、あらゆるロボット、スパイダー、自動化ツールを使ってサイトコンテンツをスクレイピングまたはデータマイニングすることを明示的に禁止しており、さらにそのコンテンツを AI や機械学習モデルの訓練に使うことも別途禁じています。これは法的助言ではありません — 実際の利用規約を読み、自分のユースケースについては弁護士に相談してください。
Walmart から実際にどのようなデータを収集できますか?
公開されているカタログデータです。検索結果(item_id、title、brand、price、availability、seller_name、rating)、完全な商品詳細(price、availability、description、attributes)、そしてレビューデータ(平均評価、星別の内訳件数、個別のレビュー本文と評価)です。アカウント、注文、ログイン後の情報は一切含まれません。
ブロックされずに Walmart をスクレイピングするのはどれくらい難しいですか?
Walmart はストアフロントの前段で PerimeterX クラスのアンチボット検出とチャレンジページを稼働させており、robots.txt は /api/、/search、/typeahead/ の各パスへのクロールを一律で禁止しています。素朴な requests ベースのスクレイパーはすぐにブロックされるかチャレンジを受け、リバースエンジニアリングが必要な内部エンドポイントは文書化されておらず、リデザインのたびに安定しません。
API を通じて Walmart の検索結果をフィルタリングやページングできますか?
はい — /walmart/search エンドポイントは必須の検索クエリに加えて page と sort のクエリパラメータを受け付けるので、クエリ自体を変えずに完全な結果セットをページングしたり、関連性、価格、評価で再ソートしたりできます。
Walmart の商品データはどのくらいの頻度で再スクレイピングすべきですか?
ユースケースによります。小売価格は頻繁に変わるため、価格追跡ワークフローは通常1日ごとまたは1日に数回チェックしますが、レビューやカタログの分類情報の取得は週次で十分です。常にレート制限を尊重し、同じ item_id を短時間で連打しないようにしてください。
これらのエンドポイントは店舗別または郵便番号別の価格を表示しますか?
いいえ — 検索と商品詳細のレスポンスは、店舗ごとや郵便番号ごとのばらつきではなく、商品ごとに全国一律の価格と在庫状況を1つだけ返します。ローカライズされた価格が必要な場合は、それを別途自分で構築する必要があり、これらのエンドポイントが公開する情報には含まれません。