Парсер заказов с Profi.ru
Кейс инструмента, который помогает отслеживать новые заказы, отбирать подходящие варианты и быстрее реагировать на заявки без постоянного ручного мониторинга площадки.
Контекст проекта
Факты, которые можно подтвердить по проекту и открытому репозиторию.
Тип проекта
Python-приложение для мониторинга новых заказов на динамической веб-странице и отправки релевантных карточек в Telegram.
Источник
Profi.ru без отдельного публичного API для требуемого сценария; страница загружается через Playwright.
Роль Александра
Авторизация, браузерный клиент, извлечение карточек, фильтры, хранение состояния, Telegram-уведомления и документация.
Проблема, ограничения и роль в проекте
Почему понадобилось отдельное решение и какие рамки учитывались при разработке.
Исходная проблема
Новые заказы приходилось искать вручную, обновляя страницу и просматривая нерелевантные карточки.
Почему не обычный HTTP-запрос
Контент загружается динамически, поэтому проект использует реальный браузер и работает с DOM через Playwright.
Ограничения
Работа зависит от вёрстки, авторизации и правил площадки. Частые проверки увеличивают риск ограничений аккаунта.
Конфиденциальность
Данные аккаунта, токен Telegram и реальные заказы не публикуются. В репозитории хранится только код и пример интерфейса.
Как устроено решение
Основные компоненты и путь данных без привязки к закрытым доступам и секретам окружения.
Авторизация
Сессия входа сохраняется и повторно используется без постоянных логинов.
Playwright
Headless-браузер открывает динамическую страницу и получает готовый DOM.
Parser
Извлекает ID, заголовок, описание и ссылку каждой карточки.
Filters и storage
Проверяют ключевые слова и сохраняют ID уже обработанных заказов.
Telegram
Formatter готовит сообщение, а бот отправляет только новые подходящие заказы.
Ключевые функции
Функции перечислены по фактической реализации, а не как возможные будущие доработки.
Динамический контент
Playwright ждёт загрузку страницы и работает с элементами, которых нет в исходном HTML.
Фильтр по ключевым словам
Название и описание проверяются до отправки уведомления.
Защита от дублей
ID обработанных карточек сохраняются и не отправляются повторно после перезапуска.
Telegram-уведомления
Подходящий заказ приходит со структурированным описанием и ссылкой.
Настраиваемый интервал
Период проверки задаётся конфигурацией и не должен быть агрессивным.
Разделение модулей
Авторизация, клиент, parser, filters, storage и Telegram-часть разделены.
Демонстрация и исходный код
В репозитории опубликован пример уведомления и исходный код модулей авторизации, парсинга, фильтрации, хранения ID и Telegram-отправки.
Результат и измерения
Отделяю подтверждённый функциональный результат от показателей, которые не передавались после запуска.
До
Пользователь вручную обновлял страницу, просматривал карточки и проверял их соответствие специализации.
После
Система отслеживает новые ID, применяет фильтр и отправляет в Telegram только подходящие заказы.
Измеримые показатели
Статистика времени реакции и числа полученных заказов публично не собиралась. Результат подтверждается функционально, кодом и демонстрационным скриншотом.
Что изменилось бы в следующей версии
Выводы по архитектуре, эксплуатации и дальнейшему развитию проекта.
После запуска
В проекте появились сохранение авторизации, контроль новых ID и рекомендации по безопасному интервалу проверок.
Что улучшить сейчас
Перенести секреты из config.py в переменные окружения, добавить устойчивые селекторы, тесты parser и уведомления об изменении структуры страницы.
Следующий этап
Хранить историю в базе данных, добавить несколько наборов фильтров и метрики успешных и ошибочных циклов.
Что может понадобиться вместе с этой задачей
Дополнительные направления, которые часто используются вместе с этой услугой.
Парсеры сайтов и Telegram
Если нужно собирать данные с сайтов, каталогов, площадок или открытых источников.
Разработка Telegram-ботов
Если результаты парсинга нужно отправлять в Telegram-бота или уведомлять менеджеров.
CRM и API-интеграции
Если найденные данные нужно передавать в CRM, таблицы, базу данных или внутренний сервис.
Создать заказ
Свяжитесь удобным способом и коротко опишите задачу. Даже если пока нет точного ТЗ, можно начать с идеи и желаемого результата.
Нужен похожий парсер?
Напишите, какие данные нужно собирать, откуда их брать и куда выгружать результат. Я помогу оценить реализуемость и предложу удобную структуру проекта.
