Passer au contenu

Percer les secrets du marché de la revente de chaussures avec Python Web Scraping

L’essor explosif des plateformes de revente de chaussures comme GOAT et StockX a créé un marché secondaire en plein essor d’un milliard de dollars. Alors que les acheteurs et les entrepreneurs avisés cherchent à capitaliser, les données sont plus précieuses que jamais. Dans ce guide complet, je montrerai comment tirer parti du web scraping pour obtenir des informations basées sur les données sur ce secteur florissant.

L’ampleur stupéfiante du boom de la revente de chaussures

Le secteur de la revente de chaussures a connu une croissance fulgurante, portée par la culture des baskets et des objets de collection. Rien qu’en Amérique du Nord, le marché secondaire des baskets est devenu une industrie de 6 milliards de dollars. StockX rapporte avoir facilité plus de 7 millions de transactions totalisant 1.8 milliard de dollars de ventes rien qu'en 2019. Et GOAT a vu ses ventes tripler entre 2018-2020.

Cette révolution de la revente a été alimentée par :

  • Sorties de baskets exclusives générant un battage médiatique et une demande. Par exemple, le Air Jordan 11 Retro Cool Gris revendre à 230 % par rapport au détail.

  • Des plateformes comme GOAT et StockX fournissant une authentification, un dépôt fiduciaire et une tarification standardisée.

  • Généraliser la sensibilisation et l’acceptation des marchés secondaires de la revente.

  • Les collectionneurs et les investisseurs considèrent les baskets comme des actifs dotés d’un potentiel d’appréciation. On sait que des baskets rares atteignent des valorisations insensées – une paire de [Nike Air Mags] signées (https://www.goat.com/sneakers/air-mag-back-to-the-future-2016– pâturage) vendu 92,100 XNUMX $ !

Cela présente des opportunités majeures pour des informations basées sur les données et une prise de décision optimisée par le web scraping.

Le Web Scraping débloque les données pour déchiffrer ce marché

Les plateformes de revente de chaussures contiennent une multitude de données couvrant des milliers de produits et d’annonces. Le web scraping fournit la clé pour déverrouiller ces données à grande échelle à des fins d'analyse.

Avantages du grattage des sites de chaussures :

  • Recherche de produit – rechercher, trouver et surveiller les versions à venir.

  • Analyse de marché – tendances de prix, analyse de la demande, segmentation par attributs de marque, etc.

  • Optimisation des prix – optimiser la valeur d’achat et de revente en fonction des signaux d’offre et de demande.

  • Suivi d'inventaire – suivez la disponibilité en temps réel et les inventaires.

  • Arbitrage de prix – identification des écarts de prix entre les détaillants.

  • Détection de contrefaçon – identifiez les fausses annonces à l’aide de modèles de données.

  • Analyse des sentiments – extraire et analyser les avis pour quantifier la perception du produit.

Pour scraper des sites complexes, les bibliothèques Python comme Selenium, Scrapy et BeautifulSoup sont indispensables :

  • Sélénium – pour les sites avec pagination ou JavaScript lourd. Selenium lance une véritable instance de navigateur pour simuler des interactions utilisateur réelles.

  • Scrapy – un framework de web scraping dédié, idéal pour les gros travaux d'exploration avec des requêtes asynchrones.

  • BeautifulSoup – bibliothèque d'analyse HTML flexible pour extraire les données pertinentes des pages récupérées.

Une utilisation appropriée des proxys et des en-têtes est également nécessaire pour éviter la détection de robots et les interdictions IP lors de tâches de scraping importantes.

Ensuite, je ferai une démonstration du grattage de l'une des plus grandes plateformes de revente de chaussures – GOAT.com

Supprimer les listes GOAT pour analyser le marché

GOAT est devenu l'une des principales destinations de revente de chaussures avec plus de 4 millions d'utilisateurs actifs quotidiens. Pour commencer à analyser ce marché, nous devons d’abord récupérer et extraire les données du site GOAT.

Je vais suivre un processus de scraping en 3 étapes :

1. API de recherche – Faites des requêtes à l'API de recherche de GOAT pour récupérer les listes et la pagination.

2. Grattez les détails – Pour chaque annonce, grattez la page produit pour extraire des attributs tels que le prix, la date de sortie, etc.

3. L'analyse des données – Grâce aux données d’annonces, nous pouvons désormais analyser les tendances de prix, les signaux de demande, les opportunités d’arbitrage, etc.

Inspectons les requêtes réseau sur GOAT pour comprendre leur API de recherche :

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" 
    }
  ]
}

Avec ce schéma API, nous pouvons désormais effectuer des requêtes pour récupérer des listes :

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

Cela renvoie des données JSON contenant 50 résultats pour les baskets Jordan. Nous pouvons paginer pour collecter des milliers d’annonces.

Ensuite, nous pouvons parcourir les listes et parcourir chaque page de produit pour en extraire les attributs détaillés :

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

Nous disposons désormais de données sur les listes de produits prêtes à être analysées !

Analyser les données récupérées pour obtenir des informations sur le marché

J'ai collecté plus de 50,000 XNUMX annonces sur des milliers de modèles de chaussures en grattant GOAT. Montrons quelques analyses permises par cet ensemble de données.

Tout d'abord, j'ai chargé les données dans un Pandas DataFrame :

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

Analysons ensuite le distribution de marques pour voir lesquels sont les plus populaires :

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 et Jordan dominent avec près de 60 % des inscriptions à eux deux. Adidas, New Balance et Converse représentent la majeure partie du reste. Cette répartition indique une demande et une valeur de revente très concentrées dans les grandes marques.

Ensuite, regardons prix de revente moyen au fil du temps pour identifier les tendances :

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

vide

Une trajectoire ascendante claire indique une hausse des prix et une croissance de la demande au cours des dernières années. Saisonnalité également visible avec des pics périodiques.

Analyser par couleur de chaussure révèle les différences de demande et de prix :

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

vide

Les chaussures de couleur noire et blanche ont les valeurs de revente les plus élevées. Ces données peuvent éclairer les achats pour cibler des couleurs plus demandées.

Surveillance des prix pour l'arbitrage

J'ai surveillé les prix de 100 meilleurs styles de baskets sur GOAT, StockX, Flight Club, Stadium Goods et eBay sur une période de 2 mois :

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) 

Comparaison Jordan 1 Retro High Dark Moka les prix montrent les opportunités :

DateCHÈVREstockXClub de volStade MarchandiseseBay
2022-01-01$456$433$475$499$425
2022-02-17$412$430$450$470$410

Des opportunités d’arbitrage existent entre les détaillants. En janvier, eBay a proposé le prix d'achat le plus bas et Stadium Goods le prix de vente le plus élevé. En février, GOAT est devenu la meilleure option d'achat tandis que Stadium Goods restait favorable à la vente.

Prédire les prix à l'aide de données historiques

L'analyse de l'historique des prix permet de prévoir les trajectoires futures des prix. Sur GOAT, le Air Jordan 4 Retro Voile blanc cassé a connu des prix volatils :

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

vide

Après la publication, les prix se sont effondrés, passant de 2500 600 $ et plus à XNUMX $ avant de rebondir. L'ajustement d'un modèle prédit l'orientation future :

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

Le modèle prévoit une appréciation continue des prix après la baisse initiale.

Cela démontre comment les données extraites via le web scraping peuvent conduire à des décisions éclairées sur le marché dynamique de la chaussure. Les mêmes techniques peuvent être appliquées aux vêtements, objets de collection et autres plateformes de revente.

Outils de grattage et considérations

Lors du scraping de grands sites comme GOAT à grande échelle, des outils et une infrastructure appropriés sont cruciaux :

  • Proxies – Faites pivoter les adresses IP pour éviter les blocages. Les proxys résidentiels simulent de vrais utilisateurs.

  • Mise à l'échelle automatique – Des services cloud comme AWS Lambda pour faire évoluer les scrapers sur tous les serveurs.

  • Cadres de grattage – Scrapy, Selenium et Puppeteer pour construire des robots robustes.

  • Magasins de données – PostgreSQL, MongoDB etc. pour stocker les données de listes structurées.

  • Planification – Tâches Cron, Apache Airflow pour planifier des exécutions de scraping sans surveillance.

  • API de scraper – Des services comme ScrapingBee, ScraperAPI et Octoparse pour une automatisation facile du navigateur.

Il est également important de respecter les sites cibles en respectant les limites d'exploration, le fichier robots.txt et en évitant de surcharger les serveurs. La conformité légale du web scraping varie selon les juridictions, mais il est conseillé de suivre des pratiques éthiques.

Conclusion

Ce guide montre comment le web scraping ouvre la voie à des recherches de produits basées sur des données et à des analyses quantitatives pour le secteur de la revente de chaussures. Les applications couvertes, de la surveillance du marché à la prévision de la demande, ne font qu'effleurer la surface de ce qui est possible. Grâce à leur expertise dans le domaine et à des techniques créatives de science des données, les scrapers intelligents peuvent acquérir un véritable avantage dans ce domaine. Les stratégies et principes explorés peuvent également être adaptés aux marchés de l’habillement, des objets de collection et à d’autres marchés dynamiques du commerce électronique.

Mots clés:

Prendre part à la conversation

Votre adresse email n'apparaitra pas. Les champs obligatoires sont marqués *