Перейти к содержимому
Антон ГончаровРазработчик ИИ-систем

Парсер на Python · работает в браузере

Мониторинг цен конкурентов

Конкурент снизил цену на ходовой роутер — а вы узнаёте об этом через неделю по упавшим продажам. Здесь парсер на Python обходит сайты трёх конкурентов «Вольта» за месяц, день за днём: находит те же товары под другими названиями, замечает снижения и распродажи, переживает редизайн чужого сайта и предлагает новую цену, не опускаясь ниже минимальной наценки. Код — тот же, что работает у клиента на сервере, только запущен в вашем браузере.

Сценарий: «Вольт» — вымышленный магазин электроники: 15 товаров — роутеры, наушники, умный дом и зарядки. Конкуренты «Ампер», «Фаза» и «Ток» тоже вымышлены, их сайты — статические страницы на 30 дней.

Скриншот демо: Мониторинг цен конкурентов

Открыть демо

Python запускается в браузере за несколько секунд: в первый раз скачивается около 6,5 МБ, ещё 8 МБ для Excel-отчёта — в фоне. Удобнее с компьютера: таблица цен и график шире.

Приложение работает в браузере: на сервер ничего не отправляется.

Что показывает демо

  • Три разных сайта — три парсера: HTML-карточки с пагинацией, robots.txt и sitemap.xml с JSON-LD на страницах товаров, SPA, где адрес API парсер находит в скрипте

  • Вежливый обход: robots.txt соблюдается, пауза между запросами, повторы при ошибках сервера — всё видно в журнале запросов

  • Редизайн сайта конкурента: карточки пропали — парсер переходит на микроразметку schema.org и предупреждает, что его пора проверить

  • Сопоставление с каталогом по штрихкоду, модели и характеристикам с объяснением; сомнительные пары помечены «проверьте», их можно подтвердить или отклонить

  • Уведомления только об изменениях: снижение цены, конкурент стал дешевле нас, товар закончился или появился, новинка в каталоге

  • Правила цены: допуск к самой низкой цене, на сколько стать дешевле, минимальная наценка — рекомендация пересчитывается сразу

  • История цен на графике и отчёт в Excel: сводка, изменения, история по дням и несопоставленные товары

  • Вкладка «Код» — исходники парсеров, сопоставления и правил

Как попробовать

  1. Посмотрите первый обход

    Приложение само обходит сайты за первый день. Вкладка «Журнал обхода» — какие страницы и в каком порядке запросил парсер, а ссылка «Открыть сайт» покажет сам сайт конкурента.

  2. Перейдите к шестому дню

    В блоке «Что попробовать» — «Ампер снижает цену роутера AX3000 на 12 %». Придёт уведомление, а рекомендация предложит 5 590 ₽ — нажмите «Поставить».

  3. Переживите редизайн

    День 12: «Ампер» меняет вёрстку. В журнале — предупреждение, но цены всё равно собраны из микроразметки.

  4. Ценовая война и отчёт

    День 18: «Ампер» и «Ток» демпингуют на наушниках — рекомендация упирается в минимальную наценку. Поменяйте её во вкладке «Правила» и скачайте Excel.

Без платных нейросетей

Сайты конкурентов вымышлены и лежат на этом же сервере, по версии на каждый из 30 дней, а парсер обходит их по-настоящему: Python 3.14 в WebAssembly-сборке Pyodide, BeautifulSoup, pandas и openpyxl. Товары сопоставляются правилами, без нейросети. Тот же пакет проверяется тестами pytest на обычном Python и запускается на сервере одной командой.

Демо работает без API-ключей OpenAI, YandexGPT или GigaChat. Там, где рабочая система обращается к модели, стоит локальная заглушка с тем же интерфейсом — поэтому демо бесплатно, всегда доступно и ничего не выдумывает.

Что будет в рабочем проекте

  • Обход по расписанию на сервере, ротация прокси и повторы, браузер Playwright для сайтов, которые без него не отдают цены
  • Каталог и цены из 1С или МойСклад, новые цены — обратно в магазин после одобрения менеджера
  • Уведомления в Telegram с кнопками: принять цену, отклонить, открыть товар у конкурента
  • Маркетплейсы: Wildberries, Ozon и Яндекс Маркет через их API
  • История в PostgreSQL, дашборд и еженедельный отчёт в Excel на почту

Стек

  • Python 3.14
  • BeautifulSoup
  • pandas
  • openpyxl
  • pytest
  • Pyodide
  • WebAssembly
  • Web Worker
  • Comlink
  • React 19
  • TypeScript
  • Recharts
  • Zustand

Основано на

Книги и дисциплины, идеи из которых работают в этом демо.

Комментарий от разработчика

Антон Гончаров

Разработчик ИИ-систем · Python

Для бизнеса

  • Снижение цены у конкурента видно в тот же день, а не через неделю по упавшим продажам.
  • Рекомендация цены учитывает минимальную наценку — в ценовой войне не уйдёте в минус.
  • Отчёт в Excel — для тех, кто привык работать в таблицах.

Для разработчиков

  • Парсер на Python (BeautifulSoup, pandas) работает в браузере в Pyodide; тот же пакет проходит pytest на обычном Python и запускается на сервере.
  • Три сайта — три подхода: HTML с пагинацией, sitemap с JSON-LD и SPA, у которой парсер находит JSON API. После редизайна он переходит на микроразметку.
  • Сопоставление с каталогом — по штрихкоду, модели и характеристикам с объяснением; сомнительные пары уходят на подтверждение человеку.

Советы

  • Совет 01

    Ищите у сайта JSON API и микроразметку раньше, чем пишете CSS-селекторы: они переживают редизайн.

  • Совет 02

    Парсер должен громко падать, когда страница изменилась, а не молча возвращать пустые цены.

Нужен такой же для вашего бизнеса?

Расскажите о задаче — отвечу, что из демо подойдёт вам, сколько это займёт и что понадобится с вашей стороны.

Другие демо в этом разделе

Все демо
  • Веб-приложение · OCR · проверка реквизитов

    работает

    Распознавание документов

    Загрузите счёт или акт — фото, скан или PDF. Приложение распознаёт текст, вытаскивает реквизиты и строки таблицы и проверяет их: контрольные суммы ИНН и счетов, итог и НДС.

    • React
    • TypeScript
    • Нейросеть в браузере
  • Веб-приложение · диалоги · сделки · аналитика

    работает

    Панель оператора

    Рабочее место оператора, которому бот передаёт сложные обращения: очередь с таймером, резюме диалога, черновик ответа, сделки на канбане и аналитика — на живом потоке клиентов.

    • React
    • TypeScript
  • Веб-приложение · Recharts · RBAC · аудит

    работает

    SaaS-дашборд

    Кабинет команды выручки SaaS: MRR по тарифам, движение выручки, отток, здоровье клиентов, выгрузка CSV для Excel и журнал действий. Все цифры считаются из одной истории за год — смена тарифа в карточке клиента сразу двигает MRR на графиках.

    • React
    • TypeScript
  • Веб-приложение · Laravel · PostgreSQL

    работает

    Складской контур на Laravel

    Учёт склада, где остаток — сумма проводок, а не «поле qty--»: заказы с резервом «всё или ничего», сборка по ячейкам, приёмка с импортом CSV, инвентаризация и журнал. Гонка двух настоящих процессов PHP в PostgreSQL показывает, зачем нужна блокировка строки.

    • PHP
  • Веб-приложение · метрики · оповещения

    работает

    Мониторинг бота

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

    • React
    • TypeScript
  • Веб-приложение · PWA · нативный JS

    работает

    Офлайн-приложение курьера

    Рабочий день курьера: заказы, звонок клиенту, вручение с фото и подписью. Приложение открывается и работает без сети, а изменения уходят в диспетчерскую, когда связь вернётся. Если диспетчер за это время изменил тот же заказ — курьер выбирает, чья версия верная.

    • Нативный JS