Tony Wang6 Min. LesezeitZara scrapen 2026 (API & Python)
Zara 2026 scrapen — Suche, Kategorien und Produktdetails pro Farbe mit Preisen, Bildern und Bestand als JSON — DIY, No-Code oder API.
Der schnellste Weg, Zara 2026 zu scrapen, ist eine strukturierte API aufzurufen, die normalisiertes JSON für Keyword-Suche, Kategorie-Listings und Produktdetails pro Farbe liefert — statt Zaras gerenderte Seiten selbst zu parsen. Zaras Storefront lässt sich ohne Konto durchsuchen, aber es gibt keine Self-Service-API für externe Entwickler, und verlässliche Daten zu ziehen bedeutet, clientseitiges Rendering, Varianten pro Farbe und Größe sowie eine Suche zu handhaben, die bei einem schwachen Treffer still auf Empfehlungen umschaltet. Dieser Guide deckt alle drei Ansätze ab, was jeder liefert, wo DIY scheitert, und die rechtlichen Grundlagen.
Warum Zara scrapen?
Zaras Produktdaten treiben an:
- Pricing-Intelligence — verfolgen, wie sich der Preis eines Kleidungsstücks über eine Saison entwickelt, inklusive Rabattaktionen.
- Fast-Fashion-Trendrecherche — sehen, welche Kategorien, Farben und Silhouetten Zara Woche für Woche hinzufügt oder streicht.
- Sortiments- und Katalog-Monitoring — ein komplettes Kategorie-Listing in einem Call ziehen, um zu verfolgen, was geführt wird und wie sich Stückzahlen verschieben.
- Größen- und Bestandsverfolgung — der Bestand pro Größe zeigt dir, wann eine beliebte Größe ausverkauft ist oder wieder aufgefüllt wird.
- Wettbewerbs- und Retail-Intelligence-Pipelines — normalisierte Fast-Fashion-Listings in Pricing-Modelle oder Dashboards neben anderen Händlern einspeisen.
Ist es legal, Zara zu scrapen?
Option 1: DIY in Python (und warum es scheitert)
Zaras Produkt- und Kategorieseiten rendern aus clientseitigen Daten statt aus einem stabilen öffentlichen JSON-Endpunkt, ein DIY-Scraper muss also die gerenderte Seite abrufen und parsen:
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)
Es funktioniert für eine Demo, dann bricht es:
- Clientseitiges Rendering. Zaras Storefront hydriert Produkt- und Kategoriedaten mit JavaScript, sodass ein einfacher HTTP-Fetch häufig genau die Felder verpasst, die du tatsächlich brauchst — Preis, Farbvarianten, Bestand pro Größe — ohne Headless-Browser.
- Jede Farbe ist eine eigene Variante, jede Größe innerhalb davon ein eigener Bestandscheck. Ein Produkt umfasst mehrere Farben, und jede Farbe hat ihren eigenen Bestand pro Größe — „das Produkt" zu parsen heißt, eine komplette Farbe-mal-Größe-Matrix abzulaufen, nicht einen einzelnen Preis.
- Keine Produkt-ID in der Response — du parst sie aus einer URL. Zaras Ergebnisseiten verlinken Produkte über eine URL (
…-p04406850.html), eine Produkt-ID für einen Detail-Lookup zu bekommen bedeutet also, sie aus diesem URL-String zu extrahieren, statt ein dediziertes ID-Feld zu lesen. - Die Suche schlägt nicht sauber fehl. Bei einem obskuren oder falsch geschriebenen Keyword greift Zaras eigene Suche auf ein breiteres empfohlenes Set zurück, statt null Ergebnisse zurückzugeben — ein naiver Scraper kann einen echten Treffer ohne zusätzliches Signal nicht von einem Fallback unterscheiden.
- Bot-Abwehr und keine Self-Service-API. Routine-Automatisierungsrequests können abgefangen werden, und es gibt kein offizielles Entwicklerprogramm, über das externe Researcher programmatischen Zugriff anfragen können — eine Handvoll Third-Party-Scraping-Tools existiert genau deshalb, weil es keine sanktionierte Alternative gibt.
Option 2: No-Code-Tools
Browser-Extensions und Click-and-Go-Scraper können eine Seite Zara-Suchergebnisse oder ein einzelnes Produkt für einen einmaligen Pull exportieren, aber sie erben dieselbe Rendering-Fragilität wie DIY und geben dir kein stabiles, versioniertes Schema für eine wiederkehrende Pipeline wie Preis- oder Bestandsverfolgung über Saisons hinweg.
Option 3: Eine strukturierte Zara-API
Für einen wiederholbaren Workflow liefert Crawloras Zara-API normalisiertes JSON für Keyword-Suche, Kategorie-Listings und Produktdetails pro Farbe und Größe — kein Rendering oder Parsing, das du pflegen musst. Suche per Keyword und Department-Section:
curl "https://api.crawlora.net/api/v1/zara/search?query=denim%20jacket§ion=WOMAN" \
-H "x-api-key: $CRAWLORA_API_KEY"
Eine Suchresponse ist normalisiertes, paginiertes JSON mit jeder Farbvariante pro Produkt (die echten Felder findest du in den Docs):
{
"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" }
]
}
]
}
}
Zieh dann die Produkt-ID aus dem url-Feld eines Ergebnisses und rufe die Produktdetails für die vollständige Farb- und Größenaufschlüsselung auf:
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"])
Die Produktdetails liefern jede Farbvariante, echte Marketingtexte, den Bestand pro Größe und die vollständige Bildergalerie:
{
"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" }
]
}
]
}
}
Für eine ganze Kategorie statt eines Keywords listest du zuerst die Kategorien und ziehst dann das komplette Listing dieser Kategorie in einem Call — Zara paginiert Kategorie-Browsing nicht:
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"
Speichere eine Zeile pro Produkt und Farbe, geschlüsselt nach sku, und lass Such- oder Kategorie-Pulls nach Zeitplan erneut laufen, um Änderungen bei price und Wechsel bei availability pro Größe zu verfolgen.
Was du sammeln kannst
Öffentliche Produkt- und Katalogdaten: Suchergebnisse (Name, url, Preis, Währung, Farbvarianten mit sku), gefiltert nach Keyword und Department-Section; der vollständige Kategoriebaum aus /zara/categories, plus das komplette, unpaginierte Produkt-Listing jeder Kategorie mit Preis und Verfügbarkeit; und vollständige Produktdetails (Name, echte Marketingbeschreibung, Preis, jede Farbvariante mit vollständiger Bildergalerie, und Bestand pro Größe). Nur öffentliche Storefront-Daten — keine Konto-, Bestell- oder Zahlungsinformationen.
Grenzen und häufige Herausforderungen
- Keine Self-Service-API. Zara bietet externen Entwicklern keinen sanktionierten Weg, Katalogdaten programmatisch zu ziehen — eine strukturierte API schließt diese Lücke.
- Die Suche ist kein garantierter Treffer. Zaras eigene Suche greift bei einem obskuren oder unsinnigen Keyword auf ein breiteres empfohlenes Ergebnis-Set zurück statt leer zu bleiben, und es gibt kein verlässliches Feld, um einen echten Treffer von diesem Fallback zu unterscheiden — behandle Queries mit niedriger Konfidenz vorsichtig.
- Kategorie-Listings liefern alles auf einmal.
/zara/category/{categoryId}/productsliefert das komplette Listing einer Kategorie in einem einzigen Call statt in Seiten — plane bei breiten Kategorien mit einer potenziell großen Response. - Produkt-IDs kommen aus einer URL, nicht aus einem dedizierten Feld. Ein Produkt aus Such- oder Kategorieergebnissen aufzulösen bedeutet, die ID aus der
urldes Ergebnisses zu parsen, nicht ein eigenständiges ID-Feld zu lesen. - Farbe und Größe bringen echte Komplexität. Preis, Bestand und Bilder eines Produkts variieren alle nach Farbe, und der Bestand variiert innerhalb jeder Farbe weiter nach Größe — „das Produkt" ist eigentlich eine Matrix, keine einzelne Zeile.
- Medien und Texte sind urheberrechtlich geschützt. Preis, Farbe, Größe und Bestand sind Fakten, die du sammeln kannst; Produktfotografie und Marketingbeschreibungen sind Content von Zara oder Inditex — veröffentliche sie nicht über das hinaus, was dein Use Case und das Recht erlauben.
Wo das eingesetzt wird
- Pricing-Intelligence —
priceund Rabattaktionen bei beobachteten Produkten oder Kategorien über eine Saison verfolgen. - Sortiments- und Trendrecherche — Kategorie-Stückzahlen und Umschlag messen, indem du komplette Kategorie-Listings nach Zeitplan ziehst.
- Größen- und Bestandsmonitoring —
availabilitypro Größe bei gefragten Artikeln beobachten, nützlich für Resale, Restock-Alerts und Dropship-Sourcing.
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper, oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Teste die Such-, Kategorie- und Produkt-Endpunkte im Playground, prüfe das Schema in den API-Docs, und sieh dir die Preise an. Für dasselbe Fashion-Retail-Muster auf einem Marketplace mit 25 europäischen Storefronts siehe how to scrape Zalando; für dieselbe Produktdetail-Struktur pro Farbe bei einem anderen Bekleidungshändler siehe how to scrape Nike. Siehe auch how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Wie durchsuche ich Zara-Produkte mit einer API?
Sende ein Keyword und eine Section an Crawloras /zara/search-Endpunkt und erhalte normalisierte, paginierte Produkte mit Preisen und jeder Farbvariante als strukturiertes JSON — kein Zara-Konto nötig.
Paginiert das Kategorie-Browsing bei Zara?
Nein — /zara/category/{categoryId}/products liefert immer das komplette Produkt-Listing einer Kategorie in einem einzigen Call, passend dazu, wie Zaras eigene Kategoriedaten strukturiert sind.
Ist Zaras Suche ein garantierter Keyword-Treffer?
Nein — Zaras eigene Suche greift bei einem obskuren oder unsinnigen Keyword auf ein breiteres empfohlenes Ergebnis-Set zurück, statt leer zu bleiben, und es gibt kein verlässliches Feld, um einen echten Treffer von diesem Fallback zu unterscheiden.