Tony Wang6 Min. LesezeitSo scrapst du Nike 2026 (API & Python)
Nike 2026 scrapen — Produktsuche, volle Details pro Farbvariante und der Men/Women/Kids/Jordan-Kategoriebaum — per DIY, No-Code oder API.
Am schnellsten scrapst du Nike 2026, indem du eine strukturierte API aufrufst, die normalisiertes JSON für die Stichwortsuche, vollständige Produktdetails pro Farbvariante und die komplette Men/Women/Kids/Jordan-Kategorie-Taxonomie liefert — statt Nike.coms Seiten selbst zu parsen. Nike.com ist ohne Konto durchsuchbar, aber es gibt keine Self-Service-API für externe Entwickler, echte Anti-Bot-Infrastruktur schützt den Storefront, und Nikes Terms of Use nennen Scraping direkt beim Namen und setzen Bot-Bans bei SNKRS ungewöhnlich aggressiv durch. Dieser Guide zeigt dir alle drei Ansätze: was jeder liefert, wo DIY scheitert, und die rechtliche Realität von Anfang an.
Warum Nike scrapen?
Nikes Produkt- und Katalogdaten treiben an:
- Preis- und Drop-Intelligence — verfolgen, wie sich Preis und Farbvarianten-Lineup eines Modells über die Zeit verändern, auch im Vorfeld eines neuen Release.
- Größen- und Lagerbestand-Monitoring — den Größenlauf einer bestimmten Farbvariante auf Restocks oder Ausverkäufe beobachten.
- Farbvarianten- und Retro-Tracking — Jordan-Retros und limitierte Farbvarianten bewegen sich schnell; erfassen, welche
style_color-Kombinationen existieren und wann neue erscheinen. - Sortiments-Recherche — die Produktabdeckung über die Linien Men, Women, Kids und Jordan hinweg kartieren.
- Wettbewerbs-Benchmarking — Nikes Katalog und Preisgestaltung mit anderen Sportartikel- und Sneaker-Händlern vergleichen.
Ist es legal, Nike zu scrapen?
Option 1: DIY in Python (und warum das scheitert)
Nikes Produktseiten rendern aus eingebettetem Page-State statt aus einem stabilen öffentlichen JSON-Endpoint, daher muss ein DIY-Scraper die gerenderte Seite abrufen und parsen:
import requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/DD1391-100",
headers={"User-Agent": "Mozilla/5.0 (compatible; research-bot/1.0)"},
)
soup = BeautifulSoup(resp.text, "html.parser")
# Price, size availability, and every other colorway live in embedded
# page state, not consistently exposed as selectable markup
Es funktioniert in der Demo und geht dann kaputt:
- Die Terms of Use sind eindeutig. Nike nennt „data mining, robots, scraping, or similar data gathering and extraction methods" direkt beim Namen und verlangt, robots.txt zu befolgen — das ist kein Grenzfall.
- Echte Anti-Bot-Infrastruktur schützt die Seite. Ein einfacher, unauthentifizierter Scraper wird schnell herausgefordert, und ein Browser-basierter Ansatz braucht laufende Pflege, sobald sich die Abwehr weiterentwickelt — und SNKRS bannt Bots gezielt über Interaktionsanalyse, Kontoverifizierung und IP-Reputationsprüfungen.
- Jede Farbvariante ist ein eigener Produktdatensatz. Ein einzelner Page-Abruf liefert dir die Daten eines
style_color; das vollständige Bild — jede Größe, jede andere verfügbare Farbe — bedeutet, jede Variante einzeln aufzulösen, und die Kombination aus slug/style_colorist aus der URL allein nicht ersichtlich. - Keine Self-Service-API. Es gibt kein offizielles Developer-Programm, über das ein externer Entwickler programmatischen Zugriff beantragen kann.
Option 2: No-Code-Tools
Marketplace-Scraper-Actors für Nike gibt es, und sie eignen sich für einen einmaligen Abruf einer Produktseite oder einer kurzen Liste, aber sie erben dieselbe Anti-Bot-Fragilität wie DIY und geben dir kein stabiles, versioniertes Schema, auf dem du eine Pipeline aufbauen kannst.
Option 3: Eine strukturierte Nike-API
Für einen wiederholbaren Workflow liefert Crawlora's Nike API normalisiertes JSON für Suche, Produktdetails und Kategorien — kein Page-Parsing oder Pflege der Bot-Abwehr. Suche nach Stichwort:
curl "https://api.crawlora.net/api/v1/nike/search?query=air%20force%201" \
-H "x-api-key: $CRAWLORA_API_KEY"
Löse dann ein slug und eine style_color aus dem colors[]-Array eines Suchtreffers auf und hole vollständige Details in Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/nike"
hits = requests.get(f"{base}/search", headers=h, params={"query": "air force 1"}).json()["data"]["products"]
product = hits[0]
slug = product["slug"]
style_color = product["colors"][0]["style_color"]
detail = requests.get(
f"{base}/product",
headers=h,
params={"slug": slug, "style_color": style_color},
).json()["data"]
categories = requests.get(f"{base}/categories", headers=h).json()["data"]["categories"]
Eine Search-Response ist normalisiertes JSON mit Preisen und jeder Farbvariante pro Produkt (echte Felder — prüfe die docs):
{
"code": 200,
"msg": "OK",
"data": {
"query": "air force 1",
"page": 1,
"total": 214,
"products": [
{
"slug": "nike-air-force-1-07",
"title": "Nike Air Force 1 '07",
"subtitle": "Men's Shoes",
"price": { "current": 115, "original": 115, "currency": "USD" },
"colors": [
{
"style_color": "DD1391-100",
"color_description": "White",
"image_url": "https://static.nike.com/a/images/t_default/af1-07-white.png"
},
{
"style_color": "CW2288-111",
"color_description": "White/White",
"image_url": "https://static.nike.com/a/images/t_default/af1-07-triple-white.png"
}
]
}
]
}
}
Product-Detail löst ein exaktes slug + style_color-Paar in jede Größe und jede andere verfügbare Farbe für diese Variante auf:
{
"data": {
"slug": "nike-air-force-1-07",
"style_color": "DD1391-100",
"title": "Nike Air Force 1 '07",
"color_description": "White",
"price": { "current": 115, "original": 115, "currency": "USD" },
"sizes": [
{ "size": "7", "available": true, "sku": "DD1391-100-070" },
{ "size": "7.5", "available": true, "sku": "DD1391-100-075" },
{ "size": "8", "available": false, "sku": "DD1391-100-080" }
],
"other_colors": [
{ "style_color": "CW2288-111", "color_description": "White/White" },
{ "style_color": "315122-111", "color_description": "White/Black" }
]
}
}
/nike/categories liefert die vollständige Taxonomie — jede Men-, Women-, Kids- und Jordan-Kategorie und -Unterkategorie als durchsuchbaren slug:
{
"data": {
"categories": [
{
"name": "Men",
"slug": "men",
"subcategories": [
{ "name": "Shoes", "slug": "men/shoes" },
{ "name": "Jordan", "slug": "men/jordan" }
]
},
{
"name": "Jordan",
"slug": "jordan",
"subcategories": [
{ "name": "Retro", "slug": "jordan/retro" }
]
}
]
}
}
Speichere eine Zeile pro slug/style_color-Paar und lass es nach Zeitplan erneut laufen, um Preisänderungen und Größenverfügbarkeit im Vorfeld eines Drops zu verfolgen.
Was du sammeln kannst
Öffentliche Storefront-Daten pro Endpoint: paginierte, normalisierte Suchergebnisse, geschlüsselt nach slug, mit Preisen und jeder Farbvariante in colors[] (style_color, color_description, image_url); vollständige Produktdetails für eine Farbvariante anhand von slug und style_color — jede angebotene Größe, Preise und jede andere verfügbare Farbe; und der komplette Men/Women/Kids/Jordan-Kategorie- und -Unterkategoriebaum, jeweils mit durchsuchbarem slug. Nur öffentliche Produktseiten-Daten — keine SNKRS-Release-Teilnahme-Mechanik, keine Kontoinformationen, keine Bestelldaten.
Grenzen und typische Herausforderungen
- Die Suche ist kein garantierter Keyword-Treffer. Nikes eigener Suchindex fällt bei einer obskuren oder unsinnigen Anfrage auf empfohlene Ergebnisse zurück, statt leer zurückzukommen, und die API spiegelt dieses Verhalten — behandle ein nicht-leeres Ergebnis als „nächstliegende Übereinstimmung", nicht als Bestätigung, dass das Keyword im Katalog existiert. Nur eine Anfrage, die ausschließlich aus Satzzeichen besteht, liefert ein wirklich leeres Ergebnis.
- Farbvarianten-Fan-out. Volle Details brauchen sowohl ein
slugals auch einestyle_color, beide aus einem Suchtreffer stammend — es gibt keinen einzelnen Call, der jede Größe für jede Farbvariante eines Produkts auf einmal zurückgibt. - Echte Anti-Bot-Infrastruktur im Frontend. Rechne mit Challenges bei naiven oder hochvolumigen automatisierten Requests direkt an nike.com, und rechne damit, dass SNKRS Bot-Bans gezielt über Interaktionsanalyse, Kontoverifizierung und IP-Reputationsprüfungen durchsetzt.
- Keine Self-Service-API. Es gibt kein offizielles Developer-Programm, über das ein externer Entwickler programmatischen Zugriff auf Nikes Storefront-Daten beantragen kann.
- Nur öffentliche Daten. Das zeigt eine Produktseite ohnehin öffentlich — niemals ein Weg, um eine SNKRS-Teilnahme oder einen -Kauf zu automatisieren oder an Konto- oder Bestellinformationen zu kommen.
Wo das eingesetzt wird
- Preis- und Drop-Intelligence — Preis- und Farbvarianten-Lineup-Änderungen bei wichtigen Modellen über die Zeit verfolgen.
- Größen- und Lagerbestand-Monitoring — den Größenlauf einer Farbvariante auf Restocks oder Ausverkäufe beobachten.
- Katalog- und Taxonomie-Mapping — Nikes Men/Women/Kids/Jordan-Kategoriebaum für die interne Suche oder Wettbewerbs-Benchmarking spiegeln.
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 Search-, Product- und Category-Endpoints im Playground, sieh dir das Schema in den API docs an und wirf einen Blick aufs pricing. Für dasselbe Single-Brand-Retailer-Muster bei Fast Fashion sieh dir how to scrape Zara an; für die General-Merchandise-Version desselben Problems how to scrape Target und how to scrape Walmart. Siehe auch how to choose a web scraping API und is web scraping legal.
Häufig gestellte Fragen
Wie durchsuche ich Nike-Produkte mit einer API?
Sende ein Stichwort an Crawloras /nike/search-Endpoint und erhalte paginierte, normalisierte Produktgruppen mit Preisen und Farbvarianten-Bildern als strukturiertes JSON — kein Nike-Konto erforderlich.
Kann ich jede Größe und Farbe für ein Nike-Produkt bekommen?
Ja — /nike/product liefert jede angebotene Größe für eine Farbvariante plus jede andere verfügbare Farbe, wenn du slug und style_color aus einem Suchergebnis übergibst.
Ist Nikes Suche ein garantierter Keyword-Treffer?
Nein — Nikes eigener Suchindex fällt bei einem obskuren oder unsinnigen Stichwort auf empfohlene Ergebnisse zurück, statt leer zurückzukommen, und die API spiegelt dieses Verhalten. Nur eine Anfrage, die ausschließlich aus Satzzeichen besteht, liefert ein wirklich leeres Ergebnis.