AI-парсинг маркетплейсов: мониторинг цен Wildberries, Ozon, Яндекс.Маркет в реальном времени

Почему ручной мониторинг убивает бизнес

Вручную следить за ценами на 5 000 SKU – это 40 часов в месяц. Затраты начинаются сразу, а данные всегда упрямо устаревают. Поэтому маршрут «ручной разбор → Excel → цены обновляются раз в квартал» уже не работает. Ниже – как собрать AI-парсер без лишних трат и блокеров.

Почему AI-парсинг эффективнее обычного

Архитектура AI-парсера

┌────────────┐
│   Data     │  (API / Playwright / Selenium)
└──────┬─────┘
       ↓
┌────────────┐
│  Parser    │  (Python + Scrapy + Selenium Wire)
└──────┬─────┘
       ↓
┌────────────┐
│  Feature   │  (NLP-эмбеддинги, CV-описание)
│  Store     │  (Postgres + Timescale + Redis)
└──────┬─────┘
       ↓
┌────────────┐
│  AI Agent  │  (GPT-4o + RAG-сравнение цен)
└──────┬─────┘
       ↓
┌────────────┐
│  Action    │  (автоматические скидки, нотификации)
└────────────┘

Сравнение 5 подходов

ПодходСложностьСкоростьЛимиты WB/OzonСтоимость, ₽/мес
Scrapy + Seleniumсредняявысокаябан по IP30 000
Playwright clusterвысокаясредняялегко обходить50 000
Парсеры через APIнизкаявысокаяограничения20 000
SerpAPI / BrightDataнизкаясредняянет100 000
AI-фреймворк (CrewAI + LLM)высокаянизкаязависит80 000

Правовые аспекты

WB и Ozon чётко прописывают запрет реализации в договоре оферты (п.2.10). Однако:

  1. Парсинг публичных страниц не считается нарушением, если нет агрессивной нагрузки.
  2. Данные разрешено использовать для внутренней аналитики.
  3. Продажа или публикация цен в открытом доступе – бан по TOS.

Поэтому храните данные в закрытом кластере и выдачу осуществляйте только клиенту через API с JWT.

Кейс: 5000 SKU на Wildberries

Задача: отслеживание акций и динамики цен для 3-х фильтров («Осень», «Детская одежда», «Косметика»).

Решение: сервис на FastAPI + Redis + GPT-4o (сравнение цен и генерация скидок).

Результат:

FAQ

1. Можно ли парсить по API?
Да, но доступ к новым API (v3) Ozon ограничен только для партнёров. WB пока сохраняет REST-интерфейс.
2. Как обойти блокировку?
Используйте ротацию прокси, User-Agent и минимальную нагрузку (1 запрос в 2 секунды).
3. Какой язык лучше для парсера?
Python + Scrapy позволяет быстро менять логику без перезагрузки контейнера.
4. Сколько памяти нужно под 5000 SKU?
Около 2 ГБ под сырые HTML + 500 МБ под сжатый Postgres.
5. Какие нотификации удобнее?
Telegram-бот + email для сложных событий (скачок цен более 15%).