Все статьиРуководстваСбор данных и Scraper API11 мин

Как построить инструмент мониторинга цен: пошаговое руководство

Создаём полноценный инструмент мониторинга цен на Python: отслеживание изменений, оповещения по email, база данных и планировщик. С примерами кода.

Команда InfraProxy

8 февраля 2026 г.

#мониторинг цен#e-commerce#автоматизация#Python#прокси

Зачем нужен свой инструмент мониторинга

Готовые SaaS-решения для мониторинга цен стоят от 30 000 руб./мес и ограничены по количеству отслеживаемых позиций. Если у вас специфические требования — нестандартные источники, кастомная логика обработки, интеграция с внутренними системами — свой инструмент окупается за первый месяц.

Архитектура системы

Инструмент состоит из четырёх компонентов:

  1. Сборщик (Scraper) — получает страницы товаров через прокси
  2. Парсер (Parser) — извлекает цену, название, наличие
  3. Хранилище (Database) — сохраняет данные с историей
  4. Оповещения (Alerts) — уведомляет об изменениях

Компонент 1: Сборщик данных

Начните с официальных API, партнёрских фидов и выгрузок поставщиков. Для разрешённых открытых страниц учитывайте:

JavaScript-рендеринг. Большинство современных магазинов загружают цены динамически. Простой HTTP-запрос вернёт пустую страницу. Нужен либо headless-браузер, либо API для скрейпинга.

Правила источника. Проверьте ToS, robots.txt, лицензию данных и допустимую частоту запросов.

Сетевой маршрут. Прокси помогают получать разрешённые региональные варианты страницы, но не дают разрешения на сбор.

Компонент 2: Извлечение данных

Из каждой страницы товара нужно извлечь:

  • Название товара и артикул/SKU
  • Текущая цена (и цена до скидки)
  • Наличие на складе (в наличии / под заказ / нет)
  • Стоимость доставки (если отображается)
  • Рейтинг и отзывы (для полноты картины)

Ключевой вызов — селекторы различаются между магазинами. Каждый источник требует своего набора правил парсинга.

Компонент 3: База данных

Сохраняйте каждый замер с временной меткой:

  • Товар: SKU, название, URL
  • Источник: магазин, регион
  • Замер: цена, скидка, наличие, дата и время

Это позволяет строить графики динамики, находить паттерны (скидки по выходным, рост перед праздниками) и рассчитывать средние цены за период.

Компонент 4: Оповещения

Настройте уведомления по критическим событиям:

  • Цена снизилась более чем на X%
  • Товар появился/исчез из наличия
  • Конкурент запустил акцию
  • Цена опустилась ниже вашей себестоимости

Каналы уведомлений: email, Telegram-бот, webhook в вашу систему.

Частота мониторинга

Оптимальная частота зависит от задачи:

  • Высококонкурентные ниши (электроника, бытовая техника): каждые 1-2 часа
  • Стабильные категории (продукты питания, одежда): 2-4 раза в день
  • B2B-продукты: 1 раз в день
  • Мониторинг акций: каждые 30 минут в период распродаж

Масштабирование

При росте числа отслеживаемых позиций:

  • 100-500 товаров — один скрипт с последовательными запросами
  • 500-5000 товаров — параллельные запросы (5-10 потоков)
  • 5000+ товаров — распределённая система с очередями задач

Размер пула и число воркеров определяйте тестом на разрешённом источнике. Измеряйте частоту 200/429/503, задержку и долю повторных запросов.

Работа с источниками

Для каждого источника документируйте разрешённый способ доступа, схему данных, валюту, регион и время обновления. Не используйте внутренние API приложений без разрешения владельца.

Стоимость системы

Типичные затраты:

  • Прокси (резидентные): от 10 000 руб./мес
  • Сервер/хостинг: от 3 000 руб./мес
  • Разработка: 20-40 часов (одноразово)

Для сравнения: SaaS-решения аналогичного уровня — от 30 000 руб./мес без возможности кастомизации.

Перед рабочим запуском проверьте задачу на разрешённом источнике: возможности Scraper API.

Этичность и ограничения

Перед сбором проверьте официальный API, robots.txt и условия использования источника. Соблюдайте Disallow и Crawl-delay, ограничивайте параллельность, используйте backoff на 429/503 и кэшируйте ответы. Собирайте только публичные данные: без обхода логина и paywall, без персональных данных и перепубликации чужих текстов. Используйте честный User-Agent и обрабатывайте запросы на удаление данных.

Нужно получать публичные данные без поддержки собственной инфраструктуры?

Посмотрите возможности Scraper API, условия теста и примеры интеграции.

Перейти к Scraper API