Tony Wang6 min de lecturaCómo hacer scraping de Nike en 2026 (API y Python)
Scraping de Nike en 2026: búsqueda, detalle por colorway y árbol de categorías Men/Women/Kids/Jordan — DIY, sin código o API estructurada.
La forma más rápida de hacer scraping de Nike en 2026 es llamar a una API estructurada que devuelve JSON normalizado para búsqueda por palabra clave, detalle completo de producto por colorway y la taxonomía completa de categorías Men/Women/Kids/Jordan — en lugar de parsear tú mismo las páginas de Nike.com. Nike.com se puede navegar sin cuenta, pero no hay una API pública de autoservicio, infraestructura real de detección de bots protege el storefront, y los Términos de Uso de Nike nombran el scraping directamente y aplican los bloqueos de bots de forma inusualmente agresiva en SNKRS. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde falla el DIY y la realidad legal desde el principio.
¿Por qué hacer scraping de Nike?
Los datos de producto y catálogo de Nike impulsan:
- Inteligencia de precios y lanzamientos — hacer seguimiento de cómo cambia con el tiempo el precio y la gama de colorways de un modelo, incluso antes de un nuevo lanzamiento.
- Monitoreo de tallas y stock — vigilar la disponibilidad de tallas de un colorway específico para detectar restocks o agotados.
- Seguimiento de colorways y retros — los retros de Jordan y los colorways limitados se mueven rápido; catalogar qué combinaciones de
style_colorexisten y cuándo aparecen nuevas. - Investigación de surtido — mapear la cobertura de productos en las líneas Men, Women, Kids y Jordan.
- Benchmarking competitivo — comparar el catálogo y los precios de Nike frente a otros minoristas deportivos y de sneakers.
¿Es legal hacer scraping de Nike?
Opción 1: DIY en Python (y por qué falla)
Las páginas de producto de Nike se renderizan a partir de un estado de página embebido en lugar de un endpoint JSON público estable, así que un scraper DIY tiene que obtener y parsear la página renderizada:
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
Funciona en la demo y luego se rompe:
- Los Términos de Uso son explícitos. Nike nombra directamente el "data mining, robots, scraping, or similar data gathering and extraction methods" y exige respetar el robots.txt — no es un caso ambiguo.
- Infraestructura real de detección de bots protege el sitio. Un scraper rutinario y sin autenticar recibe un challenge rápido, y un enfoque basado en navegador necesita mantenimiento continuo a medida que la defensa se actualiza — y SNKRS específicamente bloquea bots mediante análisis de interacción, verificación de cuenta y comprobaciones de reputación de IP.
- Cada colorway es su propio registro de producto. Una sola carga de página te da los datos de un
style_color; el panorama completo — cada talla, cada otro color disponible — implica resolver cada variante por separado, y la combinación slug/style_colorno es obvia solo a partir de la URL. - No hay una API pública de autoservicio. No existe un programa oficial para desarrolladores que permita solicitar acceso programático como desarrollador externo.
Opción 2: Herramientas sin código
Existen actors de marketplace scraper para Nike, adecuados para una extracción puntual de una página de producto o una lista corta, pero heredan la misma fragilidad frente a la detección de bots que el DIY y no te dan un esquema estable y versionado sobre el que construir un pipeline.
Opción 3: Una API estructurada de Nike
Para un flujo de trabajo repetible, la API de Nike de Crawlora devuelve JSON normalizado para búsqueda, detalle de producto y categorías — sin parsing de páginas ni mantenimiento de defensas contra bots. Busca por palabra clave:
curl "https://api.crawlora.net/api/v1/nike/search?query=air%20force%201" \
-H "x-api-key: $CRAWLORA_API_KEY"
Luego resuelve un slug y un style_color a partir del array colors[] de un resultado de búsqueda y obtén el detalle completo en 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"]
Una respuesta de búsqueda es JSON normalizado con precios y todos los colorways por producto (campos reales — revisa los 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"
}
]
}
]
}
}
El detalle de producto resuelve un par exacto slug + style_color en cada talla y cada otro color disponible de esa variante:
{
"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 devuelve la taxonomía completa — cada categoría y subcategoría de Men, Women, Kids y Jordan como un slug navegable:
{
"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" }
]
}
]
}
}
Guarda una fila por cada par slug/style_color y vuelve a ejecutarlo con un cronograma para hacer seguimiento de los movimientos de precio y los cambios de disponibilidad de talla antes de un lanzamiento.
Qué puedes recopilar
Datos públicos del storefront por endpoint: resultados de búsqueda paginados y normalizados, indexados por slug, con precios y cada colorway en colors[] (style_color, color_description, image_url); detalle completo de producto para una variante de color dados slug y style_color — cada talla ofrecida, precio y cada otro color disponible; y el árbol completo de categorías y subcategorías de Men/Women/Kids/Jordan, cada una con un slug navegable. Solo datos públicos de página de producto — no la mecánica de entrada a lanzamientos de SNKRS, información de cuenta ni datos de pedidos.
Limitaciones y retos habituales
- La búsqueda no garantiza una coincidencia con la palabra clave. El propio índice de búsqueda de Nike cae en resultados recomendados para una consulta poco común o sin sentido en lugar de devolver un resultado vacío, y la API refleja ese comportamiento — trata un resultado no vacío como "coincidencia más cercana", no como confirmación de que la palabra clave existe en el catálogo. Solo una consulta compuesta únicamente por signos de puntuación devuelve un resultado realmente vacío.
- Ramificación por colorway. El detalle completo requiere tanto un
slugcomo unstyle_color, ambos obtenidos de un resultado de búsqueda — no existe una sola llamada que devuelva cada talla de cada colorway de un producto a la vez. - Infraestructura real de detección de bots en el front end. Espera challenges ante peticiones automatizadas ingenuas o de alto volumen directamente a nike.com, y espera que SNKRS aplique específicamente bloqueos de bots mediante análisis de interacción, verificación de cuenta y comprobaciones de reputación de IP.
- No hay una API pública de autoservicio. No existe un programa oficial para desarrolladores que permita solicitar acceso programático a los datos del storefront de Nike como desarrollador externo.
- Solo datos públicos. Esto es lo que una página de producto ya muestra públicamente — nunca una forma de automatizar una entrada o compra en SNKRS, ni de acceder a información de cuenta o pedidos.
Dónde se usa esto
- Inteligencia de precios y lanzamientos — hacer seguimiento de los cambios de precio y de la gama de colorways en modelos clave a lo largo del tiempo.
- Monitoreo de tallas y stock — vigilar la disponibilidad de tallas de un colorway para detectar restocks o agotados.
- Mapeo de catálogo y taxonomía — reflejar el árbol de categorías Men/Women/Kids/Jordan de Nike para búsqueda interna o benchmarking competitivo.
Sources
Empieza a recopilar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de búsqueda, producto y categorías en el Playground, revisa el esquema en los docs de la API y consulta los precios. Para el mismo patrón de minorista de una sola marca aplicado a la moda rápida, mira how to scrape Zara; para la versión de mercancía general de este mismo problema, mira how to scrape Target y how to scrape Walmart. Consulta también how to choose a web scraping API y is web scraping legal.
Preguntas frecuentes
¿Cómo busco productos de Nike con una API?
Envía una palabra clave al endpoint /nike/search de Crawlora y obtén grupos de productos paginados y normalizados con precios e imágenes de colorway como JSON estructurado, sin necesidad de cuenta de Nike.
¿Puedo obtener todas las tallas y colores de un producto de Nike?
Sí — /nike/product devuelve cada talla ofrecida para una variante de color más cada otro color disponible, dado el slug y el style_color de un resultado de búsqueda.
¿La búsqueda de Nike garantiza una coincidencia con la palabra clave?
No — el propio índice de búsqueda de Nike cae en resultados recomendados para una palabra clave poco común o sin sentido en lugar de devolver un resultado vacío, y la API refleja ese comportamiento. Una consulta compuesta únicamente por signos de puntuación sí devuelve un resultado realmente vacío.