Meteen naar de inhoud

De geheimen van de wederverkoopmarkt voor schoenen ontsluiten met Python Web Scraping

De explosieve opkomst van platforms voor de wederverkoop van schoenen, zoals GOAT en StockX, heeft een bloeiende secundaire markt van miljarden dollars gecreëerd. Nu slimme kopers en ondernemers willen kapitaliseren, zijn gegevens waardevoller dan ooit. In deze uitgebreide gids laat ik zien hoe u webscraping kunt gebruiken om datagestuurde inzichten in deze bloeiende industrie te ontsluiten.

De duizelingwekkende omvang van de hausse in de wederverkoop van schoenen

De schoenenwederverkoopindustrie heeft een snelle groei doorgemaakt, aangedreven door de sneakercultuur en verzamelobjecten. Alleen al in Noord-Amerika is de secundaire sneakermarkt uitgegroeid tot een industrie van $6 miljard. StockX meldt dat het alleen al in 7 meer dan 1.8 miljoen transacties mogelijk heeft gemaakt, met een totale omzet van $2019 miljard. En GOAT zag zijn omzet tussen 2018 en 2020 verdrievoudigen.

Deze wederverkooprevolutie is aangewakkerd door:

  • Exclusieve sneakerreleases die een hype en vraag genereren. Bijvoorbeeld de Air Jordan 11 Retro Cool Grijs verkoop voor 230% ten opzichte van de detailhandel.

  • Platforms zoals GOAT en StockX die authenticatie, escrow en gestandaardiseerde prijzen bieden.

  • Mainstream bewustzijn en acceptatie van secundaire wederverkoopmarkten.

  • Verzamelaars en investeerders behandelen sneakers als activa met waardepotentieel. Het is bekend dat zeldzame sneakers krankzinnige waarderingen bereiken – een paar gesigneerde [Nike Air Mags](https://www.goat.com/sneakers/air-mag-back-to-the-future-2016– weidegang) verkocht voor $92,100!

Dit biedt grote kansen voor datagestuurde inzichten en besluitvorming, mogelijk gemaakt door webscraping.

Webscraping ontgrendelt de gegevens om deze markt te ontcijferen

Platforms voor de wederverkoop van schoenen bevatten een schat aan gegevens over duizenden producten en aanbiedingen. Webscraping biedt de sleutel om deze gegevens op schaal te ontsluiten voor analyse.

Voordelen van het schrapen van schoenensites:

  • Product onderzoek – zoek, vind en monitor aankomende releases.

  • Marktanalyse – prijstrends, vraaganalyse, segmentering op merkkenmerken enz.

  • Prijsoptimalisatie – optimaliseer de aankoop- en wederverkoopwaarde op basis van vraag- en aanbodsignalen.

  • Voorraadbewaking – volg realtime beschikbaarheid en voorraadtellingen.

  • Prijsarbitrage – identificatie van prijsverschillen tussen detailhandelaren.

  • Valsgelddetectie – valse vermeldingen identificeren met behulp van gegevenspatronen.

  • Sentiment analyse – beoordelingen extraheren en analyseren om de productperceptie te kwantificeren.

Voor het scrapen van complexe sites zijn Python-bibliotheken zoals Selenium, Scrapy en BeautifulSoup onmisbaar:

  • Selenium – voor sites met paginering of zwaar JavaScript. Selenium lanceert een echte browserinstantie om echte gebruikersinteracties te simuleren.

  • Scrapy – een speciaal webscraping-framework, ideaal voor grote crawltaken met asynchrone verzoeken.

  • Mooie soep – flexibele HTML-parseringsbibliotheek om relevante gegevens uit geschraapte pagina's te extraheren.

Het juiste gebruik van proxy's en headers is ook nodig om botdetectie en IP-verboden tijdens grote scraping-taken te voorkomen.

Vervolgens demonstreer ik het schrapen van een van de grootste platforms voor de wederverkoop van schoenen: GOAT.com

GOAT-vermeldingen schrappen om de markt te analyseren

GOAT is uitgegroeid tot een van de belangrijkste wederverkoopbestemmingen voor schoenen met meer dan 4 miljoen dagelijkse actieve gebruikers. Om deze markt te kunnen analyseren, moeten we eerst gegevens van de GOAT-site schrapen en extraheren.

Ik zal een schraapproces van 3 stappen doorlopen:

1. Zoek-API – Verzoeken indienen bij de zoek-API van GOAT om vermeldingen en paginering op te halen.

2. Details schrapen – Schraap voor elke aanbieding de productpagina om kenmerken zoals prijs, releasedatum enz. te extraheren.

3. Gegevensanalyse – Met listinggegevens kunnen we nu prijstrends, vraagsignalen, arbitragemogelijkheden enz. analyseren.

Laten we netwerkverzoeken op GOAT inspecteren om hun zoek-API te begrijpen:

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

Met dit API-schema kunnen we nu verzoeken indienen om vermeldingen op te halen:

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

Dit retourneert JSON-gegevens met 50 resultaten voor Jordan-sneakers. We kunnen pagineren om duizenden vermeldingen te verzamelen.

Vervolgens kunnen we de vermeldingen doorlopen en elke productpagina schrapen om gedetailleerde kenmerken eruit te halen:

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

Nu hebben we productvermeldingsgegevens klaar voor analyse!

Analyseren van verzamelde gegevens voor marktinzichten

Ik heb meer dan 50,000 aanbiedingen van duizenden schoenmodellen verzameld door GOAT te schrappen. Laten we een analyse demonstreren die door deze dataset mogelijk wordt gemaakt.

Eerst heb ik de gegevens in een Pandas DataFrame geladen:

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

Laten we vervolgens de distributie van merken om te zien welke het populairst zijn:

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 en Jordan domineren met samen bijna 60% van de vermeldingen. Adidas, New Balance en Converse vormen het grootste deel van de rest. Deze uitsplitsing geeft aan dat de vraag en de verkoopwaarde sterk geconcentreerd zijn bij de grote merken.

Laten we vervolgens eens kijken gemiddelde verkoopprijs in de loop van de tijd trends identificeren:

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

blanco

Een duidelijk opwaarts traject duidt op stijgende prijzen en een groei van de vraag in de afgelopen jaren. Seizoensgebondenheid is ook zichtbaar met periodieke pieken.

Analyseren door kleur schoen onthult vraag- en prijsverschillen:

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

blanco

Zwart-wit gekleurde schoenen hebben de hoogste inruilwaarde. Deze gegevens kunnen de aankoop ondersteunen om meer gevraagde kleuren te targeten.

Prijsmonitoring voor arbitrage

Ik heb gedurende een periode van twee maanden de prijzen gevolgd voor 100 topsneakerstijlen bij GOAT, StockX, Flight Club, Stadium Goods en eBay:

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) 

Vergelijken Jordan 1 Retro High Donker Mokka prijzen tonen kansen:

DatumGEITStockxFlight ClubGoederen van het stadioneBay
2022-01-01$456$433$475$499$425
2022-02-17$412$430$450$470$410

Er bestaan ​​arbitragemogelijkheden bij detailhandelaren. In januari bood eBay de laagste koopprijs en Stadium Goods de hoogste verkoopprijs. In februari werd GOAT de beste koopoptie, terwijl Stadium Goods gunstig bleef voor verkoop.

Prijzen voorspellen met behulp van historische gegevens

Door de prijsgeschiedenis te analyseren, kunnen toekomstige prijstrajecten worden voorspeld. Op GOAT, de Air Jordan 4 Retro gebroken wit zeil heeft volatiele prijzen gezien:

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

blanco

Na de release daalden de prijzen van $2500+ naar $600, voordat ze weer herstelden. Het passen van een model voorspelt de toekomstige richting:

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

Het model voorspelt een aanhoudende prijsstijging na de aanvankelijke daling.

Dit laat zien hoe gegevens die via webscraping worden geëxtraheerd, weloverwogen beslissingen kunnen nemen in de dynamische schoenenmarkt. Dezelfde technieken kunnen worden toegepast op kleding, verzamelobjecten en andere wederverkoopplatforms.

Hulpmiddelen en overwegingen voor het schrapen

Bij het op grote schaal schrapen van grote sites zoals GOAT zijn de juiste tools en infrastructuur cruciaal:

  • volmachten – Roteer IP's om blokkades te voorkomen. Residentiële proxy's simuleren echte gebruikers.

  • Automatisch schalen – Cloudservices zoals AWS Lambda om scrapers over verschillende servers te schalen.

  • Kaders schrappen – Scrapy, Selenium en Puppeteer om robuuste crawlers te bouwen.

  • Gegevensopslag – PostgreSQL, MongoDB enz. om gestructureerde vermeldingsgegevens op te slaan.

  • Scheduling – Cron-jobs, Apache Airflow om onbeheerde scraping-runs te plannen.

  • Schraper-API's – Diensten zoals ScrapingBee, ScraperAPI en Octoparse voor eenvoudige browserautomatisering.

Het is ook belangrijk om doelsites te respecteren door de crawllimieten en robots.txt te respecteren en overbelastende servers te vermijden. De wettelijke naleving van webscraping verschilt per rechtsgebied, maar het volgen van ethische praktijken wordt geadviseerd.

Conclusie

Deze gids laat zien hoe webscraping datagestuurd productonderzoek en kwantitatieve analyses ontsluit voor de schoenenwederverkoopindustrie. De behandelde toepassingen, van marktmonitoring tot vraagvoorspelling, schetsen slechts het oppervlak van wat mogelijk is. Met domeinexpertise en creatieve datawetenschapstechnieken kunnen slimme schrapers op dit gebied een echte voorsprong verwerven. De onderzochte strategieën en principes kunnen ook worden aangepast aan kleding, verzamelobjecten en andere levendige e-commercemarkten.

Tags:

Doe mee aan het gesprek

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *