перейти к содержанию

Раскрываем секреты рынка перепродажи обуви с помощью Python Web Scraping

Взрывной рост платформ перепродажи обуви, таких как GOAT и StockX, создал быстро развивающийся вторичный рынок стоимостью в миллиарды долларов. Поскольку опытные покупатели и предприниматели стремятся извлечь выгоду, данные становятся более ценными, чем когда-либо. В этом подробном руководстве я покажу, как использовать парсинг веб-страниц, чтобы получить основанную на данных информацию об этой процветающей отрасли.

Ошеломляющие масштабы бума перепродажи обуви

Индустрия перепродажи обуви пережила стремительный рост, чему способствовала культура кроссовок и предметы коллекционирования. Только в Северной Америке вторичный рынок кроссовок разросся до индустрии с оборотом в 6 миллиардов долларов. По данным StockX, только в 7 году было осуществлено более 1.8 миллионов транзакций на общую сумму 2019 миллиарда долларов США. А продажи GOAT утроились в период с 2018 по 2020 год.

Эта революция перепродажи была вызвана:

  • Эксклюзивные выпуски кроссовок, вызывающие ажиотаж и спрос. Например, Air Jordan 11 Retro Cool Grey перепродать на 230% дороже розничной.

  • Такие платформы, как GOAT и StockX, обеспечивают аутентификацию, условное депонирование и стандартизированные цены.

  • Основная осведомленность и признание вторичных рынков перепродажи.

  • Коллекционеры и инвесторы рассматривают кроссовки как актив, имеющий потенциал роста стоимости. Известно, что редкие кроссовки достигают безумной цены – пара подписанных [Nike Air Mags](https://www.goat.com/sneakers/air-mag-back-to-the-future-2016– выпас) продан за 92,100 XNUMX долларов!

Это открывает большие возможности для анализа данных и принятия решений на основе парсинга веб-страниц.

Веб-скрапинг открывает данные для расшифровки этого рынка

Платформы по перепродаже обуви содержат огромное количество данных, охватывающих тысячи продуктов и списков. Веб-скрапинг дает ключ к получению этих данных в масштабе для анализа.

Преимущества парсинга сайтов с обувью:

  • Исследование продукта – искать, находить и отслеживать предстоящие выпуски.

  • Анализ рынка – тенденции ценообразования, аналитика спроса, сегментация по атрибутам бренда и т. д.

  • Оптимизация цен – оптимизировать стоимость покупки и перепродажи на основе сигналов спроса и предложения.

  • Инвентаризационный мониторинг – отслеживать наличие и количество запасов в режиме реального времени.

  • Ценовой арбитраж – выявление расхождений в ценах у розничных продавцов.

  • Обнаружение подделок – выявляйте поддельные объявления, используя шаблоны данных.

  • Анализ настроений – извлекать и анализировать отзывы для количественной оценки восприятия продукта.

Для парсинга сложных сайтов незаменимы библиотеки Python, такие как Selenium, Scrapy и BeautifulSoup:

  • Селен – для сайтов с нумерацией страниц или тяжелым JavaScript. Selenium запускает реальный экземпляр браузера для имитации реального взаимодействия с пользователем.

  • Scrapy – специальная платформа для парсинга веб-страниц, отлично подходящая для больших задач сканирования с асинхронными запросами.

  • КрасивыйСуп — гибкая библиотека синтаксического анализа HTML для извлечения соответствующих данных из очищенных страниц.

Правильное использование прокси и заголовков также необходимо, чтобы избежать обнаружения ботов и банов по IP-адресам во время больших заданий по очистке данных.

Далее я продемонстрирую парсинг одной из крупнейших платформ по перепродаже обуви — GOAT.com.

Парсинг списков GOAT для анализа рынка

GOAT превратился в одно из ведущих мест по перепродаже обуви с более чем 4 миллионами активных пользователей в день. Чтобы начать анализировать этот рынок, нам сначала нужно очистить и извлечь данные с сайта GOAT.

Я расскажу о трехэтапном процессе парсинга:

1. API поиска – Отправляйте запросы к API поиска GOAT для получения списков и нумерации страниц.

2. Очистить детали – Для каждого листинга очистите страницу продукта, чтобы извлечь такие атрибуты, как цена, дата выпуска и т. д.

3. Анализ данных – Имея данные о листингах, мы теперь можем анализировать тенденции цен, сигналы спроса, арбитражные возможности и т. д.

Давайте проверим сетевые запросы на GOAT, чтобы понять их поисковый API:

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

С помощью этой схемы API мы теперь можем отправлять запросы на получение списков:

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

Возвращаются данные JSON, содержащие 50 результатов для кроссовок Jordan. Мы можем разбивать на страницы, чтобы собрать тысячи списков.

Далее мы можем просмотреть списки и очистить каждую страницу продукта, чтобы извлечь подробные атрибуты:

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

Теперь у нас есть данные о товарных списках, готовые для анализа!

Анализ очищенных данных для понимания рынка

С помощью парсинга GOAT я собрал более 50,000 XNUMX объявлений о тысячах моделей обуви. Давайте продемонстрируем некоторый анализ, доступный с помощью этого набора данных.

Сначала я загрузил данные в DataFrame Pandas:

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

Далее давайте проанализируем распространение брендов чтобы увидеть, какие из них наиболее популярны:

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 и Jordan, на долю которых приходится почти 60% листингов. Большую часть остальных составляют Adidas, New Balance и Converse. Эта разбивка указывает на высокую концентрацию спроса и стоимости при перепродаже среди основных брендов.

Далее, давайте посмотрим на средняя цена перепродажи с течением времени выявить тенденции:

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

пустой

Четкая восходящая траектория указывает на рост цен и рост спроса в последние годы. Сезонность также проявляется в виде периодических всплесков.

Анализируя цвет обуви выявляет разницу в спросе и ценах:

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

пустой

Обувь черного и белого цветов имеет самую высокую стоимость при перепродаже. Эти данные могут помочь при покупке ориентироваться на более востребованные цвета.

Мониторинг цен для арбитража

Я отслеживал цены на 100 лучших моделей кроссовок на сайтах GOAT, StockX, Flight Club, Stadium Goods и 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) 

Сравнение Jordan 1 Retro High Dark Мокко Мокко цены показывают возможности:

ВремяКОЗЕЛStockXFlight ClubТовары для стадионаeBay
2022-01-01$456$433$475$499$425
2022-02-17$412$430$450$470$410

Арбитражные возможности существуют у розничных продавцов. В январе eBay предложил самую низкую цену на покупку, а Stadium Goods — самую высокую цену на продажу. К февралю GOAT стал лучшим вариантом для покупки, тогда как Stadium Goods оставался выгодным для продажи.

Прогнозирование цен с использованием исторических данных

Анализ истории цен позволяет прогнозировать будущие траектории цен. На GOAT Air Jordan 4 Retro Off-White Sail видел нестабильные цены:

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

пустой

После релиза цены упали с $2500+ до $600, а затем восстановились. Подбор модели предсказывает будущее направление:

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

Модель прогнозирует продолжение роста цен после первоначального снижения.

Это демонстрирует, как данные, полученные с помощью парсинга веб-страниц, могут способствовать принятию обоснованных решений на динамично развивающемся рынке обуви. Те же методы можно применить к одежде, предметам коллекционирования и другим платформам перепродажи.

Инструменты парсинга и соображения

При парсинге больших сайтов, таких как GOAT, решающее значение имеют правильные инструменты и инфраструктура:

  • Доверенные – Меняйте IP-адреса, чтобы избежать блоков. Резидентные прокси имитируют реальных пользователей.

  • Автомасштабирование – Облачные сервисы, такие как AWS Lambda, для масштабирования парсеров между серверами.

  • Парсинг-фреймворки – Scrapy, Selenium и Puppeteer для создания надежных сканеров.

  • Хранилища данных – PostgreSQL, MongoDB и т. д. для хранения данных структурированных списков.

  • Календарное Планирование – Задания Cron, Apache Airflow для планирования автоматических запусков очистки.

  • API парсера – Такие сервисы, как ScrapingBee, ScraperAPI и Octoparse, для простой автоматизации браузера.

Также важно уважать целевые сайты, соблюдая ограничения на сканирование, файл robots.txt и избегая перегрузки серверов. Соблюдение законодательства в отношении парсинга веб-страниц зависит от юрисдикции, но рекомендуется следовать этическим нормам.

Заключение

В этом руководстве показано, как парсинг веб-страниц открывает возможности для исследования продуктов на основе данных и количественного анализа для индустрии перепродажи обуви. Описанные приложения, от мониторинга рынка до прогнозирования спроса, лишь поверхностно отражают возможности. Благодаря опыту в предметной области и творческим методам анализа данных умные парсеры могут получить настоящее преимущество в этой области. Изученные стратегии и принципы также могут быть адаптированы к торговле одеждой, предметами коллекционирования и другими динамично развивающимися рынками электронной коммерции.

Теги:

Присоединяйтесь к беседе

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *