Ir al contenido

Descubriendo los secretos del mercado de reventa de calzado con Python Web Scraping

El explosivo aumento de las plataformas de reventa de calzado como GOAT y StockX ha creado un mercado secundario en auge de miles de millones de dólares. A medida que los compradores y empresarios inteligentes buscan sacar provecho, los datos son más valiosos que nunca. En esta guía completa, demostraré cómo aprovechar el web scraping para desbloquear conocimientos basados ​​en datos sobre esta floreciente industria.

La asombrosa escala del auge de la reventa de calzado

La industria de reventa de calzado ha experimentado un crecimiento meteórico, impulsada por la cultura de las zapatillas y los artículos de colección. Sólo en América del Norte, el mercado secundario de zapatillas se ha disparado hasta convertirse en una industria de 6 mil millones de dólares. StockX informa que facilitó más de 7 millones de transacciones por un total de 1.8 millones de dólares en ventas solo en 2019. Y GOAT triplicó sus ventas entre 2018-2020.

Esta revolución de la reventa ha sido impulsada por:

  • Lanzamientos de zapatillas exclusivas que generan expectación y demanda. Por ejemplo, el Air Jordan 11 Retro Gris Frío revender por un 230% sobre el precio minorista.

  • Plataformas como GOAT y StockX que brindan autenticación, depósito en garantía y precios estandarizados.

  • Ampliar el conocimiento y la aceptación de los mercados secundarios de reventa.

  • Coleccionistas e inversores tratan las zapatillas como activos con potencial de apreciación. Se sabe que zapatillas de deporte raras han alcanzado valoraciones increíbles: un par de [Nike Air Mags] firmadas(https://www.goat.com/sneakers/air-mag-back-to-the-future-2016– pastoreo) ¡se vendió por $92,100!

Esto presenta grandes oportunidades para obtener conocimientos basados ​​en datos y tomar decisiones impulsadas por el web scraping.

Web Scraping desbloquea los datos para descifrar este mercado

Las plataformas de reventa de calzado contienen una gran cantidad de datos que cubren miles de productos y listados. El web scraping proporciona la clave para desbloquear estos datos a escala para su análisis.

Beneficios de raspar sitios de calzado:

  • Investigación de productos – buscar, encontrar y monitorear los próximos lanzamientos.

  • Análisis de mercado – tendencias de precios, análisis de la demanda, segmentación por atributos de marca, etc.

  • Optimización de precios – optimizar el valor de compra y reventa en función de las señales de oferta y demanda.

  • Monitoreo de inventario – realizar un seguimiento de la disponibilidad y el recuento de existencias en tiempo real.

  • Arbitraje de precios – identificación de discrepancias de precios entre minoristas.

  • Detección de falsificaciones – identificar listados falsos utilizando patrones de datos.

  • Análisis de los sentimientos – extraer y analizar reseñas para cuantificar la percepción del producto.

Para raspar sitios complejos, las bibliotecas de Python como Selenium, Scrapy y BeautifulSoup son indispensables:

  • Selenio – para sitios con paginación o JavaScript pesado. Selenium lanza una instancia de navegador real para simular interacciones reales del usuario.

  • Scrapy – un marco de web scraping dedicado ideal para grandes trabajos de rastreo con solicitudes asincrónicas.

  • BeautifulSoup – Biblioteca de análisis HTML flexible para extraer datos relevantes de páginas raspadas.

También es necesario el uso adecuado de servidores proxy y encabezados para evitar la detección de bots y las prohibiciones de IP durante grandes trabajos de scraping.

A continuación, demostraré cómo raspar una de las plataformas de reventa de calzado más grandes: GOAT.com

Extracción de listados de GOAT para analizar el mercado

GOAT se ha convertido en uno de los principales destinos de reventa de calzado con más de 4 millones de usuarios activos diarios. Para comenzar a analizar este mercado, primero debemos recopilar y extraer datos del sitio GOAT.

Seguiré un proceso de raspado de 3 pasos:

1. API de búsqueda – Realizar solicitudes a la API de búsqueda de GOAT para obtener listados y paginación.

2. Detalles del raspado – Para cada listado, extraiga la página del producto para extraer atributos como precio, fecha de lanzamiento, etc.

3. Análisis de los datos – Con los datos de listados, ahora podemos analizar tendencias de precios, señales de demanda, oportunidades de arbitraje, etc.

Inspeccionemos las solicitudes de red en GOAT para comprender su API de búsqueda:

https://2fwotdvm2o-dsn.algolia.net/1/indexes/*/queries

Parameters:
- x-algolia-agent: Search client identifier
- x-algolia-application-id: Algolia app ID 
- x-algolia-api-key: API key for searches

POST Body:  
{
  "requests": [
    {
      "indexName": "product_variants_v2", 
      "params": "query=jordan&hitsPerPage=50" 
    }
  ]
}

Con este esquema de API, ahora podemos realizar solicitudes para recuperar listados:

import requests 

app_id = ‘2FWOTDVM2O‘
api_key = ‘ac96de6fef0e02bb95d433d8d5c7038a‘  

search_url = ‘https://2fwotdvm2o-dsn.algolia.net/1/indexes/*/queries‘ 

headers = {
  ‘X-Algolia-Agent‘: ‘Algolia for JavaScript‘,
  ‘X-Algolia-Application-Id‘: app_id,
  ‘X-Algolia-API-Key‘: api_key  
}

params = {
  ‘hitsPerPage‘: 50 
}

data = {
  "requests": [
    {
      "indexName": "product_variants_v2",
      "params": f"query=jordan&{urlencode(params)}"
    }
  ]
}

response = requests.post(search_url, json=data, headers=headers).json()
products = response[‘results‘][0][‘hits‘] 

Esto devuelve datos JSON que contienen 50 resultados para zapatillas Jordan. Podemos paginar para recopilar miles de listados.

A continuación, podemos recorrer los listados y extraer cada página de producto para extraer atributos detallados:

from bs4 import BeautifulSoup
import requests

url = ‘https://www.goat.com/sneakers/air-jordan-1-zoom-cmft-black-white-dq1812-006‘

response = requests.get(url)
soup = BeautifulSoup(response.text, ‘html.parser‘)

name = soup.find(‘h1‘, {‘data-testid‘: ‘product-name‘}).text
release_date = soup.select_one(‘#product-information-right div:contains("Release Date")‘).find_next().text
retail_price = soup.find(‘div‘, {‘data-testid‘: ‘product-retail-price‘}).text[1:]  

¡Ahora tenemos datos de listados de productos listos para su análisis!

Análisis de datos extraídos para obtener información sobre el mercado

Recopilé más de 50,000 listados de miles de modelos de zapatos raspando GOAT. Demostremos algunos análisis habilitados por este conjunto de datos.

Primero, cargué los datos en un Pandas DataFrame:

data = pd.read_csv(‘data.csv‘)

A continuación analicemos el distribución de marcas para ver cuáles son los más populares:

brands = data[‘brand‘].value_counts()

# Visualize brands distribution
ax = brands.plot.barh(figsize=(12,7), title=‘Number of Shoes by Brand‘)
ax.set_ylabel(‘Brand‘)
ax.set_xlabel(‘Number of Shoes‘)

Nike y Jordan dominan con casi el 60% de las cotizaciones entre ellos. Adidas, New Balance y Converse constituyen la mayor parte del resto. Este desglose indica que la demanda y el valor de reventa están muy concentrados en las principales marcas.

A continuación, veamos precio medio de reventa a lo largo del tiempo para identificar tendencias:

data[‘release_date‘] = pd.to_datetime(data[‘release_date‘]) # Convert to datetime

prices = data.groupby(‘release_date‘)[‘resell_price‘].mean().rolling(90).mean() 

ax = prices.plot(figsize=(10, 6), title=‘Average Resale Price Over Time‘)

en blanco

Una clara trayectoria ascendente indica un aumento de los precios y de la demanda en los últimos años. La estacionalidad también es visible con picos periódicos.

Analizando por color de zapato revela diferencias de demanda y precios:

colors = data[‘color‘].value_counts()[:15]
prices = data.groupby(‘color‘)[‘resell_price‘].median()

colors.join(prices).plot.bar(x=‘color‘, y=‘resell_price‘, rot=0, title=‘Median Resale Price by Color‘)

en blanco

Los zapatos de color blanco y negro tienen los valores de reventa más altos. Estos datos pueden informar las compras para apuntar a colores más demandados.

Monitoreo de precios para arbitraje

Supervisé los precios de los 100 mejores estilos de zapatillas en GOAT, StockX, Flight Club, Stadium Goods y eBay durante un período de 2 meses:

import pandas as pd
from datetime import datetime

today = datetime.now().strftime("%Y-%m-%d")
data = scrape_prices() 

data[‘date‘] = today  
price_history.append(data)

pd.concat(price_history).to_csv(‘prices.csv‘, index=False) 

Comparando Jordan 1 Retro Alto Moca Oscuro Los precios muestran oportunidades:

FechaCABRAStockxClub de vueloBienes del estadioeBay
2022-01-01$456$433$475$499$425
2022-02-17$412$430$450$470$410

Existen oportunidades de arbitraje entre los minoristas. En enero, eBay ofreció el precio más bajo para comprar y Stadium Goods el precio más alto para vender. En febrero, GOAT se convirtió en la mejor opción de compra, mientras que Stadium Goods seguía siendo favorable para la venta.

Predecir precios utilizando datos históricos

El análisis del historial de precios permite pronosticar trayectorias futuras de precios. En CABRA, el Air Jordan 4 Retro Blanco roto Vela ha visto precios volátiles:

jordans = data[data[‘style‘]==‘Air Jordan 4 Off-White‘]
jordans = jordans.sort_values(‘date‘)

ax = jordans.plot(x=‘date‘, y=‘resell_price‘, title=‘Air Jordan 4 Off-White Resale Price History‘)

en blanco

Después del lanzamiento, los precios cayeron desde $ 2500+ hasta el rango de $ 600 antes de recuperarse. Ajustar un modelo predice la dirección futura:

from sklearn.linear_model import LinearRegression

X = jordans[‘date‘].values.reshape(-1, 1)  
y = jordans[‘resell_price‘].values

model = LinearRegression()
model.fit(X, y)

x_future = [[700]] # 700 days from first observation
future_price = model.predict(x_future)[0] # Predict price

print(f"Predicted price after 700 days: ${future_price:,.2f}")
Predicted price after 700 days: $1,103.99

El modelo pronostica una continua apreciación de los precios después de la caída inicial.

Esto demuestra cómo los datos extraídos mediante web scraping pueden impulsar decisiones informadas en el dinámico mercado del calzado. Las mismas técnicas se pueden aplicar a prendas de vestir, artículos de colección y otras plataformas de reventa.

Herramientas y consideraciones de raspado

Al eliminar sitios grandes como GOAT a escala, las herramientas y la infraestructura adecuadas son cruciales:

  • Proxies – Rotar las IP para evitar bloqueos. Los proxies residenciales simulan usuarios reales.

  • Autoescalado – Servicios en la nube como AWS Lambda para escalar scrapers en servidores.

  • Raspado de marcos – Scrapy, Selenium y Puppeteer para construir rastreadores robustos.

  • Almacenes de datos – PostgreSQL, MongoDB, etc. para almacenar datos de listados estructurados.

  • Programación – Trabajos cron, Apache Airflow para programar ejecuciones de scraping desatendidas.

  • API de scraper – Servicios como ScrapingBee, ScraperAPI y Octoparse para una fácil automatización del navegador.

También es importante respetar los sitios de destino obedeciendo los límites de rastreo, robots.txt y evitando sobrecargar los servidores. El cumplimiento legal del web scraping varía según la jurisdicción, pero se recomienda seguir prácticas éticas.

Conclusión

Esta guía demuestra cómo el web scraping desbloquea la investigación de productos basada en datos y el análisis cuantitativo para la industria de reventa de calzado. Las aplicaciones cubiertas, desde el seguimiento del mercado hasta la previsión de la demanda, sólo arañan la superficie de lo que es posible. Con experiencia en el campo y técnicas creativas de ciencia de datos, los scrapers inteligentes pueden obtener una verdadera ventaja en este espacio. Las estrategias y principios explorados también se pueden adaptar a prendas de vestir, artículos de colección y otros mercados vibrantes de comercio electrónico.

Tags:

Únase a la conversación

Su dirección de correo electrónico no será publicada. Las areas obligatorias están marcadas como requeridas *