Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Автоматизация проверки контрагентов: как мы победили каптчу и защиту

Изменение законодательства РФ потребовало от группы компаний проверять всех новых контрагентов. Штатный юрист не справлялся с объёмом, а API-сервисы стоили дорого. Мы написали парсер на Selenium, который интегрировался с корпоративной системой и Telegram, и теперь проверка занимает минуты вместо часов. А сформированный PDF-отчёт с подписью юриста можно сразу сохранить в дело.

Закон меняет правила игры

В связи с новым законодательством РФ, которое предполагает ответственность за выбор контрагента, в группе компаний ввели регламент: проверка всех новых контрагентов по факторам риска. Раньше юрист проверял только крупные контракты по запросу начальства, теперь — каждый договор. Основные источники данных: checko.ru, rusprofile.ru, nalog.ru, list-org.com. Но ручная проверка каждого контрагента стала неподъёмной.

Оценив стоимость API (тысячи рублей в месяц) и список критериев, решили написать парсер для list-org.com — ресурса с богатой информацией, но серьёзной защитой от ботов (заголовки, каптча, ограничения скорости).

Как работает система

  1. Пользователь (менеджер) заполняет заявку на проверку в корпоративной системе.
  2. Telegram-бот уведомляет юриста о новом запросе.
  3. Юрист открывает раздел проверок, видит анкету и нажимает «Начать проверку».
  4. Парсер на Selenium запускается, вбивает ИНН в поиск на list-org.com, выбирает нужного контрагента (учитывая КПП филиалов).
  5. Собирает данные: наименование, ИНН, КПП, ОГРН, статус, учредители, руководитель, адрес и т.д.
  6. Раскладывает результаты в корпоративную систему и формирует отчёт.
  7. Юрист визирует отчёт, ставит статус «Рекомендован» или «Не рекомендован».
  8. Система автоматически генерирует PDF-отчёт с подписью юриста и сохраняет его в базе данных.
  9. Пользователь получает уведомление в Telegram о завершении проверки и ссылку на отчёт.
Image
Image
Image

Парсер должен уметь

ИНН ввод ИНН
Поиск по ИНН
Вводит ИНН в строку поиска list-org.com, игнорируя другие поля (название, адрес), чтобы сузить выдачу.
КПП филиала
Выбор контрагента
Анализирует результаты поиска, учитывает возможные филиалы с разными КПП, переходит на нужную карточку.
данные контрагента
Извлечение данных
Собирает наименование, ИНН, КПП, ОГРН, статус, учредителей, руководителя, адрес.
? Selenium
Обход защиты
Эмулирует действия человека (Selenium), случайные паузы, подменяет заголовки, не вызывает подозрений.
ERP
Интеграция с ERP
Раскладывает данные в корпоративную систему (SQL/API), формирует отчёт для юриста.
Telegram
Уведомления
Оповещает юриста о новых запросах и пользователя о завершении проверки через корпоративного бота.
PDF с подписью
PDF-отчёт с подписью
После визирования юриста система автоматически генерирует PDF-файл, содержащий все данные и статус проверки, с электронной подписью юриста.

Техническая кухня

  • Донор: list-org.com — мощная защита: заголовки, каптча, ограничение частоты запросов.
  • Оружие: старый добрый Selenium с полной эмуляцией браузера (Chrome), случайными движениями мыши, паузами 5–15 секунд между действиями.
  • Скорость: до 10 проверок в час — для задачи этого достаточно, не нужно платить за разгадывание каптчи.
  • Хранение: данные складываются в SQL-базу корпоративной системы, связаны с заявками пользователей.
  • Генерация PDF: после утверждения отчёта юристом система создаёт PDF-документ с логотипом компании, печатью и местом для подписи, сохраняет его в базе данных.
  • Стек: Selenium, ChromeDriver, SQL, Redis для очередей, Telegram Bot API.

Результат

  • Соответствие законодательству: все контрагенты проверяются по единому регламенту, риск штрафов сведён к минимуму.
  • Экономия времени юриста: раньше одна проверка занимала до 30 минут, теперь — 2–3 минуты на визирование отчёта.
  • Прозрачность и архивация: каждый отчёт сохраняется в PDF с подписью юриста, что обеспечивает доказательную базу при проверках.
  • Интеграция с Telegram: юрист и пользователи получают мгновенные уведомления, не заходя в систему.
  • Масштабируемость: парсер легко адаптировать под другие источники (rusprofile, checko) при необходимости.

Обсудим задачу