Взрывной рост платформ перепродажи обуви, таких как 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 Мокко Мокко цены показывают возможности:
Время | КОЗЕЛ | StockX | Flight 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 и избегая перегрузки серверов. Соблюдение законодательства в отношении парсинга веб-страниц зависит от юрисдикции, но рекомендуется следовать этическим нормам.
Заключение
В этом руководстве показано, как парсинг веб-страниц открывает возможности для исследования продуктов на основе данных и количественного анализа для индустрии перепродажи обуви. Описанные приложения, от мониторинга рынка до прогнозирования спроса, лишь поверхностно отражают возможности. Благодаря опыту в предметной области и творческим методам анализа данных умные парсеры могут получить настоящее преимущество в этой области. Изученные стратегии и принципы также могут быть адаптированы к торговле одеждой, предметами коллекционирования и другими динамично развивающимися рынками электронной коммерции.