Salta al contenuto

Svelare i segreti del mercato di rivendita di calzature con Python Web Scraping

L’ascesa esplosiva delle piattaforme di rivendita di calzature come GOAT e StockX ha creato un mercato secondario in forte espansione da miliardi di dollari. Mentre acquirenti e imprenditori esperti cercano di trarre profitto, i dati sono più preziosi che mai. In questa guida completa, dimostrerò come sfruttare il web scraping per sbloccare approfondimenti basati sui dati in questo fiorente settore.

L’incredibile portata del boom della rivendita di calzature

Il settore della rivendita di calzature ha registrato una crescita fulminea, guidata dalla cultura delle sneaker e dagli oggetti da collezione. Solo nel Nord America, il mercato secondario delle sneaker è cresciuto fino a diventare un’industria da 6 miliardi di dollari. StockX segnala di aver facilitato oltre 7 milioni di transazioni per un totale di 1.8 miliardi di dollari di vendite solo nel 2019. E GOAT ha visto le sue vendite triplicare tra il 2018 e il 2020.

Questa rivoluzione della rivendita è stata alimentata da:

  • Rilasci di sneaker esclusive che generano hype e domanda. Ad esempio, il Air Jordan 11 Retro Grigio freddo rivendere per il 230% rispetto al dettaglio.

  • Piattaforme come GOAT e StockX forniscono autenticazione, deposito a garanzia e prezzi standardizzati.

  • Consapevolezza e accettazione da parte del mainstream dei mercati di rivendita secondari.

  • Collezionisti e investitori trattano le sneakers come beni con potenziale di apprezzamento. È noto che scarpe da ginnastica rare raggiungono valutazioni folli: un paio di [Nike Air Mags]( firmatehttps://www.goat.com/sneakers/air-mag-back-to-the-future-2016– pascolo) venduto per $ 92,100!

Ciò offre importanti opportunità per approfondimenti basati sui dati e processi decisionali alimentati dal web scraping.

Il Web Scraping sblocca i dati per decifrare questo mercato

Le piattaforme di rivendita di calzature contengono una grande quantità di dati che coprono migliaia di prodotti ed elenchi. Il web scraping fornisce la chiave per sbloccare questi dati su larga scala per l'analisi.

Vantaggi della raschiatura dei siti di calzature:

  • Ricerca del prodotto – cercare, trovare e monitorare le prossime versioni.

  • Analisi di mercato – Tendenze dei prezzi, analisi della domanda, segmentazione per attributi del marchio, ecc.

  • Ottimizzazione del prezzo – ottimizzare il valore di acquisto e rivendita in base ai segnali di domanda e offerta.

  • Monitoraggio dell'inventario – monitorare la disponibilità in tempo reale e il conteggio delle scorte.

  • Arbitraggio sui prezzi – identificazione delle discrepanze di prezzo tra i rivenditori.

  • Rilevamento contraffazione – identificare elenchi falsi utilizzando modelli di dati.

  • Analisi del sentimento – estrarre e analizzare le recensioni per quantificare la percezione del prodotto.

Per lo scraping di siti complessi sono indispensabili le librerie Python come Selenium, Scrapy e BeautifulSoup:

  • Selenio – per siti con impaginazione o JavaScript pesante. Selenium avvia un'effettiva istanza del browser per simulare le interazioni dell'utente reale.

  • Scrapy – un framework di web scraping dedicato, ideale per lavori di scansione di grandi dimensioni con richieste asincrone.

  • bellazuppa – libreria di analisi HTML flessibile per estrarre dati rilevanti dalle pagine raschiate.

È inoltre necessario un uso corretto di proxy e intestazioni per evitare il rilevamento dei bot e i divieti IP durante lavori di scraping di grandi dimensioni.

Successivamente dimostrerò come raschiare una delle più grandi piattaforme di rivendita di calzature: GOAT.com

Raschiare gli elenchi GOAT per analizzare il mercato

GOAT è diventata una delle principali destinazioni di rivendita di calzature con oltre 4 milioni di utenti attivi giornalieri. Per iniziare ad analizzare questo mercato, dobbiamo prima raccogliere ed estrarre i dati dal sito GOAT.

Seguirò un processo di scraping in 3 fasi:

1. API di ricerca – Effettua richieste all'API di ricerca di GOAT per recuperare elenchi e impaginazione.

2. Raschiare i dettagli – Per ogni inserzione, scorri la pagina del prodotto per estrarre attributi come prezzo, data di rilascio, ecc.

3. Analisi dei dati – Con i dati delle inserzioni, ora possiamo analizzare le tendenze dei prezzi, i segnali della domanda, le opportunità di arbitraggio, ecc.

Ispezioniamo le richieste di rete su GOAT per comprendere la loro API di ricerca:

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 questo schema API, ora possiamo effettuare richieste per recuperare elenchi:

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‘] 

Verranno restituiti dati JSON contenenti 50 risultati per scarpe da ginnastica Jordan. Possiamo impaginare per raccogliere migliaia di elenchi.

Successivamente possiamo scorrere gli elenchi e analizzare la pagina di ciascun prodotto per estrarre attributi dettagliati:

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:]  

Ora abbiamo i dati delle schede di prodotto pronti per l'analisi!

Analisi dei dati raschiati per approfondimenti di mercato

Ho raccolto oltre 50,000 inserzioni su migliaia di modelli di scarpe raschiando GOAT. Dimostriamo alcune analisi rese possibili da questo set di dati.

Innanzitutto, ho caricato i dati in un Pandas DataFrame:

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

Successivamente analizziamo il distribuzione dei marchi per vedere quali sono i più popolari:

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 e Jordan dominano con quasi il 60% delle inserzioni tra di loro. Adidas, New Balance e Converse costituiscono la maggior parte del resto. Questa ripartizione indica che la domanda e il valore di rivendita sono altamente concentrati nei principali marchi.

Quindi, diamo un'occhiata prezzo medio di rivendita nel tempo per identificare le tendenze:

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‘)

vuoto

Una chiara traiettoria ascendente indica l’aumento dei prezzi e la crescita della domanda negli ultimi anni. Stagionalità visibile anche con picchi periodici.

Analizzando da colore della scarpa rivela la domanda e le differenze di prezzo:

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‘)

vuoto

Le scarpe colorate in bianco e nero hanno i valori di rivendita più alti. Questi dati possono indirizzare gli acquisti verso i colori più richiesti.

Monitoraggio dei prezzi per l'arbitraggio

Ho monitorato i prezzi di 100 modelli di sneaker di punta su GOAT, StockX, Flight Club, Stadium Goods ed eBay per un periodo di 2 mesi:

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) 

Confronto Jordan 1 Retro High Dark Moka i prezzi mostrano opportunità:

DataCAPRAStockXFlight ClubMerci dello stadioeBay
2022-01-01$456$433$475$499$425
2022-02-17$412$430$450$470$410

Esistono opportunità di arbitraggio tra i rivenditori. A gennaio eBay ha offerto il prezzo più basso per l'acquisto e Stadium Goods il prezzo più alto per la vendita. A febbraio GOAT è diventata la migliore opzione di acquisto mentre Stadium Goods è rimasto favorevole alla vendita.

Prevedere i prezzi utilizzando dati storici

L’analisi della cronologia dei prezzi consente di prevedere le traiettorie future dei prezzi. Su GOAT, il Air Jordan 4 Retro Off-White Vela ha visto prezzi volatili:

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‘)

vuoto

Dopo il rilascio, i prezzi sono crollati da $ 2500+ fino a $ 600 prima di rimbalzare. L’adattamento di un modello prevede la direzione 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

Il modello prevede un continuo apprezzamento dei prezzi dopo il calo iniziale.

Ciò dimostra come i dati estratti tramite il web scraping possano guidare decisioni informate nel dinamico mercato delle calzature. Le stesse tecniche possono essere applicate all'abbigliamento, agli oggetti da collezione e ad altre piattaforme di rivendita.

Strumenti e considerazioni per la raschiatura

Quando si analizzano siti di grandi dimensioni come GOAT su larga scala, sono cruciali strumenti e infrastrutture adeguati:

  • Proxy – Ruota gli IP per evitare blocchi. I proxy residenziali simulano utenti reali.

  • autoscaling – Servizi cloud come AWS Lambda per scalare gli scraper tra i server.

  • Raschiare le strutture – Scrapy, Selenium e Puppeteer per costruire robusti crawler.

  • Archivi di dati – PostgreSQL, MongoDB ecc. per archiviare dati di elenchi strutturati.

  • Programmazione – Lavori Cron, Apache Airflow per programmare corse di scraping non presidiate.

  • API raschianti – Servizi come ScrapingBee, ScraperAPI e Octoparse per una facile automazione del browser.

È anche importante rispettare i siti di destinazione obbedendo ai limiti di scansione, robots.txt ed evitando di sovraccaricare i server. La conformità legale del web scraping varia in base alla giurisdizione, ma si consiglia di seguire pratiche etiche.

Conclusione

Questa guida dimostra come il web scraping sblocca la ricerca di prodotti basata sui dati e l'analisi quantitativa per il settore della rivendita di calzature. Le applicazioni coperte, dal monitoraggio del mercato alla previsione della domanda, rappresentano solo la superficie di ciò che è possibile. Con competenze nel settore e tecniche creative di data science, gli scraper intelligenti possono ottenere un vero vantaggio in questo spazio. Le strategie e i principi esplorati possono anche essere adattati all’abbigliamento, agli oggetti da collezione e ad altri vivaci mercati dell’e-commerce.

Tag:

Partecipa alla conversazione

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *