Кейс

Парсер Profi.ru для мониторинга новых заказов

Кейс разработки парсера Profi.ru: сервис отслеживает новые заказы, фильтрует заявки, отправляет их в Telegram и позволяет пересоздать авторизованную сессию по SMS прямо через бота.

Краткое описание

Парсер Profi.ru с уведомлениями в Telegram

Сервис проверяет ленту, отбирает подходящие карточки и доставляет их владельцу аккаунта.

Что делает система

Открывает Profi.ru, находит новые заказы, применяет фильтры и отправляет уведомление в Telegram со ссылкой на источник.

Какие данные обрабатывает

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

Основное ограничение

Для поддержания работы парсера необходимо обновлять сессию Profi.ru. Это легко делается через Telegram-бота, в которого приходят уведомления.

Обновление

Пересоздание сессии Profi.ru через Telegram

Когда авторизация заканчивается, не нужно подключаться к серверу и вручную переносить cookies. Весь контролируемый сценарий повторного входа проходит в Telegram-боте.

1. Запуск восстановления

Пользователь отправляет /renew. Бот проверяет, можно ли начать новую попытку, и запускает отдельный браузер восстановления.

2. Запрос SMS

Chromium открывает форму входа Profi.ru, вводит настроенный номер и ждёт появления поля подтверждения.

3. Код в Telegram

Бот просит прислать четыре цифры для подтверждения. После этого код вставляется в актуальное поле формы, и парсер продолжает работу.

Архитектура

Как устроено решение

Из каких частей состоит проект и как они работают вместе.

01

Сессия Profi.ru

Cookies и состояние браузера сохраняются между запусками. При завершении сессии бот запускает контролируемое восстановление.

02

Playwright и Chromium

Headless-браузер открывает авторизованную ленту, ждёт динамические элементы и передаёт готовый DOM парсеру.

03

Извлечение заказов

Парсер получает ID, заголовок, описание, место, сроки и ссылку на исходную карточку.

04

Фильтры

Заголовок и описание проверяются по целевым и исключающим условиям до отправки пользователю.

05

Хранилище

ID просмотренных карточек сохраняются, поэтому один заказ не приходит повторно после перезапуска.

06

Telegram-контур

Бот доставляет новые заказы, сообщает о сбоях и принимает команды диагностики и восстановления.

Технологии проекта

  • Python
  • Playwright
  • Chromium
  • Парсинг данных
  • Фильтрация
  • Telegram Bot API
  • systemd
Функции

Что умеет система

Возможности, реализованные в этом проекте.

Мониторинг ленты

Парсер каждые 30 секунд проверяет новые заказы Profi.ru и отправляет уведомления о подходящих в Telegram. Интервал проверки можно изменить.

Фильтрация заявок

Правила учитывают тематику, намерение заказчика, исключения и явно указанный бюджет.

Защита от дублей

Обработанные ID сохраняются и не отправляются повторно после перезапуска сервиса.

Telegram-уведомления

В сообщении приходят описание, место, удобные даты, ссылка на заказ и его ID.

Восстановление по SMS

Команда /renew запускает вход, а четырёхзначный код передаётся боту обычным сообщением.

Автоматическое продолжение

После успешного подтверждения новая сессия сохраняется, и парсер сам возвращается к мониторингу.

Диагностика

Команды показывают состояние парсера, сессии, Chromium, Telegram, heartbeat и доступность сайта.

Управление ошибками

Уведомления о сбоях можно проверить, временно отключить и снова включить командами бота.

Безопасные паузы

При CAPTCHA или ограничении площадки обращения останавливаются вместо агрессивных повторных попыток.

Подтверждение

Демонстрация и исходный код

Парсер показывает уведомление о найденном заказе, сценарий повторной авторизации и меню настройки. Исходный код парсера опубликован в репозитории.

Пример уведомления парсера Profi.ru о новом заказе
Первый вариант уведомления: найденный заказ Profi.ru с описанием задачи и данными для быстрого просмотра в Telegram.
Восстановление сессии Profi.ru по SMS-коду в Telegram-боте
Команда /renew, запрос четырёхзначного SMS-кода, сохранение новой сессии Profi.ru и автоматическое возобновление парсинга.
Команды управления парсером Profi.ru в Telegram
Меню команд для проверки состояния, диагностики, управления ошибками, восстановления сессии и продолжения работы.
Посмотреть репозиторий на GitHub
Результат

Что получилось

Что можно проверить в проекте и какой сценарий он решает.

До автоматизации

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

После запуска

Система находит новые ID, применяет фильтры и отправляет в Telegram только подходящие заказы со ссылкой на Profi.ru.

Управление

Команды через бота в Telegram

Команды собраны в меню бота, можно настроить работу парсера прямо внутри Telegram.

Состояние и диагностика

/status показывает состояние парсера и сессии, /health запускает полную диагностику.

Сообщения об ошибках

/errors показывает ошибки в работе парсера, если такие происходят, /errors_off отключает уведомления о них, /errors_on включает.

Справка

/help выводит актуальный список команд и кратко объясняет назначение каждой из них.

Перед установкой

Что нужно для покупки такого парсера?

Для запуска парсера на вашем сервере понадобятся аккаунт Profi.ru, доступ к привязанному номеру и VPS любой мощности.

Аккаунт Profi.ru

Нужен аккаунт Profi.ru. Для парсера лучше использовать отдельный аккаунт, а не основной.

Доступ к номеру телефона

Понадобится доступ к номеру, на который зарегистрирован аккаунт: на него приходит SMS-код для входа и обновления сессии.

Свой VPS

Для парсинга подойдёт VPS с минимальными ресурсами, расположенный за пределами России. Его можно оформить у провайдеров серверов, примерная минимальная цена для подходящего VPS - 500 руб./месяц.

Стоимость

Цена

Копия парсера, установка на ваш VPS и настройка под ваши пожелания — 3000 ₽. Аренда VPS в стоимость парсера не входит и оплачивается через сторонние сервисы.

Собственная копия

Вы получаете отдельную копию парсера, установленную на вашем сервере.

Нужные заказы

Настрою фильтры и уведомления под ваши пожелания, чтобы в Telegram приходили подходящие вам заказы.

Техническая поддержка

Помогу с вопросами по работе парсера и после завершения заказа.

Связаться

Создать заказ

Свяжитесь удобным способом и коротко опишите задачу. Даже если пока нет точного ТЗ, можно начать с идеи и желаемого результата.

Нужен такой парсер?

Для покупки копии парсера свяжитесь со мной в удобном вам мессенджере.

Вопросы и ответы

Частые вопросы

Короткие ответы на вопросы, которые обычно появляются перед началом разработки.

Что делает парсер Profi.ru?

Он открывает авторизованную ленту заказов, находит новые карточки, отбирает подходящие заявки по заданным условиям и отправляет их в Telegram со ссылкой на оригинал.

Как парсер Profi.ru отбирает нужные заказы?

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

Что происходит, когда сессия Profi.ru заканчивается?

Бот сообщает о проблеме. Команда /renew запускает повторный вход, после чего пользователь отправляет четырёхзначный SMS-код в Telegram. Успешная сессия сохраняется, и мониторинг продолжается автоматически.

Сохраняется ли SMS-код авторизации?

Нет. Код используется только для текущей попытки восстановления, не записывается в рабочие файлы и принимается ограниченное время после запроса бота.

Парсер обходит CAPTCHA и ограничения Profi.ru?

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

Можно ли изменить фильтры и формат уведомлений?

Да. Можно настроить целевые и исключающие условия, минимальный бюджет, интервал проверок и состав сообщения, а результаты при необходимости передавать не только в Telegram, но и в CRM или базу данных.

Услуги

Что может понадобиться вместе с этой задачей

Дополнительные направления, которые часто используются вместе с этой услугой.