Tony Wang6 分で読めますZara の在庫をスクレイピングする方法(2026年版・API & Python)
2026年に Zara をスクレイピング——検索、カテゴリ一覧、色ごとの商品詳細を価格・画像・サイズ在庫付きの JSON で取得。DIY・ノーコード・API。
2026年に Zara をスクレイピングする最速の方法は、Zara のレンダリング済みページを自分でパースするのではなく、キーワード検索、カテゴリ一覧、色ごとの商品詳細を正規化された JSON で返す構造化 API を呼び出すことです。Zara のストアフロントはアカウントなしで閲覧できますが、外部開発者向けのセルフサービス型公開 API はなく、信頼できるデータを取得するにはクライアントサイドレンダリング、色・サイズごとのバリアント、そしてキーワードがうまく一致しないときに黙っておすすめ結果に差し替わる検索への対処が必要です。このガイドでは3つのアプローチすべてと、それぞれが返すもの、DIY がどこで破綻するか、そして法律の基本を扱います。
なぜ Zara をスクレイピングするのか?
Zara の商品データは以下を支えます。
- 価格インテリジェンス — 値下げを含め、あるガーメントの価格がシーズンを通じてどう動くかを追跡する。
- ファストファッションのトレンドリサーチ — Zara が週ごとにどのカテゴリ、色、シルエットを追加・削除しているかを把握する。
- アソートメントとカタログのモニタリング — 1回の呼び出しでカテゴリの完全な一覧を取得し、何が扱われているか、点数がどう変化しているかを追跡する。
- サイズと在庫の可用性トラッキング — サイズごとの在庫があれば、人気サイズが売り切れたり再入荷したりするタイミングを監視できる。
- 競合・リテールインテリジェンスのパイプライン — 正規化されたファストファッションのリスティングを、他の小売業者と並べて価格モデルやダッシュボードに投入する。
Zara をスクレイピングするのは合法か?
選択肢1: Python で DIY する(そしてなぜ破綻するか)
Zara の商品ページとカテゴリページは、安定した公開 JSON エンドポイントではなくクライアントサイドのデータからレンダリングされるため、DIY スクレイパーはレンダリング後のページを取得してパースする必要があります。
import re
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.zara.com/us/en/oversized-denim-jacket-p04406850.html",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Price, color variants, and per-size stock are embedded in page data,
# not consistently exposed as selectable markup — a plain requests.get()
# often returns a shell you can't reliably parse.
product_id = re.search(r"-p(\d+)\.html", resp.url).group(1)
一度は動きますが、そこから破綻します。
- クライアントサイドレンダリング。 Zara のストアフロントは商品・カテゴリデータを JavaScript でハイドレートするため、素の HTTP フェッチではヘッドレスブラウザなしに、実際に必要なフィールド——価格、色バリアント、サイズごとの在庫——をしばしば取りこぼします。
- 色ごとに別バリアント、その中のサイズごとに別の在庫チェック。 1つの商品は複数の色にまたがり、各色にはそれぞれサイズごとの在庫があります——「商品」をパースするというのは、1つの価格ではなく色×サイズの完全なマトリクスをたどることを意味します。
- レスポンスに商品 ID がなく、URL から抽出する必要がある。 Zara の検索結果ページは商品を URL(
…-p04406850.html)でリンクしているため、詳細取得用の商品 ID を得るには、専用の ID フィールドを読むのではなく、その URL 文字列から抽出する必要があります。 - 検索がきれいに失敗しない。 曖昧なキーワードやスペルミスに対して、Zara 自身の検索はゼロ件を返す代わりに、より広いおすすめセットにフォールバックします——素朴なスクレイパーは追加のシグナルなしに、真の一致とフォールバックを区別できません。
- ボット対策とセルフサービス API の不在。 定型的な自動リクエストはチャレンジを受けることがあり、外部リサーチャーがプログラムによるアクセスを申請できる公式の開発者プログラムはありません——公認された代替手段が存在しないからこそ、いくつかのサードパーティ製スクレイピングツールが存在しています。
選択肢2: ノーコードツール
ブラウザ拡張機能やポイント&クリック型のスクレイパーは、Zara の検索結果1ページ分や単一の商品を一回限りの取得としてエクスポートできますが、DIY と同じレンダリングの脆弱性を引き継いでおり、シーズンごとの価格や在庫トラッキングのような繰り返しのパイプラインに向けた、安定したバージョン管理されたスキーマは提供しません。
選択肢3: 構造化された Zara API
繰り返し実行できるワークフローには、Crawlora の Zara API がキーワード検索、カテゴリ一覧、色・サイズごとの商品詳細を正規化された JSON で返します——レンダリングやパース処理をメンテナンスする必要はありません。キーワードと部門セクションで検索します。
curl "https://api.crawlora.net/api/v1/zara/search?query=denim%20jacket§ion=WOMAN" \
-H "x-api-key: $CRAWLORA_API_KEY"
検索レスポンスは正規化された、ページネーション済みの JSON で、商品ごとにすべての色バリアントを含みます(正確なフィールドはドキュメントで確認してください)。
{
"code": 200,
"msg": "OK",
"data": {
"query": "denim jacket",
"section": "WOMAN",
"page": 1,
"count": 24,
"products": [
{
"name": "OVERSIZED DENIM JACKET",
"url": "https://www.zara.com/us/en/oversized-denim-jacket-p04406850.html",
"price": 69.9,
"currency": "USD",
"colors": [
{ "name": "BLUE", "sku": "04406850800-04" },
{ "name": "BLACK", "sku": "04406850800-05" }
]
}
]
}
}
続けて、結果の url フィールドから商品 ID を取り出し、商品詳細を呼び出して色とサイズの完全な内訳を取得します。
import re
import requests
BASE = "https://api.crawlora.net/api/v1/zara"
headers = {"x-api-key": "YOUR_API_KEY"}
results = requests.get(f"{BASE}/search", headers=headers, params={"query": "denim jacket", "section": "WOMAN"}).json()["data"]["products"]
product_id = re.search(r"-p(\d+)\.html", results[0]["url"]).group(1)
product = requests.get(f"{BASE}/product/{product_id}", headers=headers).json()["data"]
for color in product["colors"]:
for size in color["sizes"]:
print(color["name"], size["size"], size["availability"])
商品詳細は、すべての色バリアント、実際のマーケティングコピー、サイズごとの在庫、そして画像ギャラリー全体を返します。
{
"code": 200,
"msg": "OK",
"data": {
"id": "04406850",
"name": "OVERSIZED DENIM JACKET",
"description": "Oversized jacket made of cotton with a worn-in effect. Featuring a lapel collar and long sleeves with buttoned cuffs. Front patch pockets. Button-up front.",
"price": 69.9,
"currency": "USD",
"colors": [
{
"name": "BLUE",
"sku": "04406850800-04",
"images": [
"https://static.zara.net/assets/public/.../w=750.jpg",
"https://static.zara.net/assets/public/.../w=1126.jpg"
],
"sizes": [
{ "size": "XS", "availability": "in_stock" },
{ "size": "S", "availability": "low_stock" },
{ "size": "M", "availability": "out_of_stock" }
]
}
]
}
}
キーワードではなくカテゴリ全体が欲しい場合は、まずカテゴリを一覧してから、そのカテゴリの完全な一覧を1回の呼び出しで取得します——Zara はカテゴリ閲覧をページネーションしません。
curl "https://api.crawlora.net/api/v1/zara/categories" \
-H "x-api-key: $CRAWLORA_API_KEY"
curl "https://api.crawlora.net/api/v1/zara/category/1234567/products" \
-H "x-api-key: $CRAWLORA_API_KEY"
sku をキーに、商品×色ごとに1行として保存し、検索やカテゴリの取得をスケジュール実行して price の変化とサイズごとの availability の切り替わりを追跡してください。
何を収集できるか
公開されている商品・カタログデータです。キーワードと部門セクションでフィルタした検索結果(名前、URL、価格、通貨、sku 付きの色バリアント)、/zara/categories からの完全なカテゴリツリーに加えて、各カテゴリの完全な、ページネーションされていない商品一覧(価格と在庫を含む)、そして完全な商品詳細(名前、実際のマーケティング説明文、価格、画像ギャラリー全体を伴う各色バリアント、サイズごとの在庫)です。公開されているストアフロントデータのみであり、アカウント、注文、決済情報は含まれません。
制約とよくある課題
- セルフサービス型公開 API がない。 Zara は外部開発者に対して、カタログデータをプログラムから取得するための公認された方法を提供していません——構造化 API がそのギャップを埋めます。
- 検索は一致を保証しない。 曖昧または意味をなさないキーワードに対して、Zara 自身の検索は空を返す代わりにより広いおすすめ結果セットにフォールバックし、真の一致とフォールバックを区別できる信頼できるフィールドはありません——確信度の低いクエリは慎重に扱ってください。
- カテゴリ一覧は一度にすべてを返す。
/zara/category/{categoryId}/productsはページングせずに、1回の呼び出しでカテゴリの完全な一覧を返します——広いカテゴリでは大きなレスポンスになる可能性を見込んでおいてください。 - 商品 ID は専用フィールドではなく URL から得られる。 検索やカテゴリ結果から商品を特定するには、単独の ID フィールドを読むのではなく、結果の
urlから ID をパースする必要があります。 - 色とサイズが実質的な複雑さを加える。 商品の価格、在庫、画像はすべて色によって異なり、在庫はさらに各色の中でサイズによって異なります——「商品」とは実際には1行ではなくマトリクスです。
- メディアとコピーには著作権がある。 価格、色、サイズ、在庫は収集できる事実ですが、商品写真やマーケティングの説明文は Zara または Inditex のコンテンツです——ユースケースと法律が許す範囲を超えて再公開しないでください。
どこで使われるか
- 価格インテリジェンス — シーズンを通して、監視対象の商品やカテゴリの
priceと値下げを追跡する。 - アソートメントとトレンドリサーチ — カテゴリの完全な一覧をスケジュール実行して取得し、カテゴリごとの点数と入れ替わりを測定する。
- サイズと在庫のモニタリング — 需要の高い商品についてサイズごとの
availabilityを監視する。転売、再入荷アラート、ドロップシッピングのソーシングに有用。
出典
収集を始める
まずは無料で試す: Free Web Scraperで任意の公開 URL を実行するか、Anti-Bot Checkerでサイトがボットをブロックしているかを確認できます——サインアップ不要です。
Playgroundで検索、カテゴリ、商品の各エンドポイントをテストし、API ドキュメントでスキーマを確認し、料金ページを確認してください。25の欧州ストアフロントを網羅するマーケットプレイスにおける同じファッション小売のパターンについてはZalando のスクレイピング方法を、別のアパレル小売業者における同じ色ごとの商品詳細の構造についてはNike のスクレイピング方法をそれぞれ参照してください。ウェブスクレイピング API の選び方とウェブスクレイピングは合法かも参照してください。
よくある質問
API で Zara の商品を検索するにはどうすればいいですか?
キーワードと部門セクションを Crawlora の /zara/search エンドポイントに送信すると、Zara アカント不要で、価格とすべての色バリアントを含む正規化されたページネーション済みの商品が構造化 JSON で取得できます。
Zara のカテゴリ閲覧はページネーションされますか?
いいえ——/zara/category/{categoryId}/products は常に1回の呼び出しでカテゴリの完全な商品一覧を返します。これは Zara 自身のカテゴリデータの構造と一致しています。
Zara の検索はキーワードとの一致を保証しますか?
いいえ——曖昧または意味をなさないキーワードに対して、Zara 自身の検索は空を返す代わりに、より広いおすすめ結果セットにフォールバックします。そして、そのフォールバックと真の一致を区別できる信頼できるフィールドはありません。