1000 сайтов в час вместо нескольких часов на каждый — так работает ЮScan, сервис автоматизированного аудита от ЮMoney. Его основная задача — помочь банкам и платёжным организациям не допустить подключения сайтов, которые маскируют запрещённую или рискованную деятельность под легальный бизнес. Сервис автоматически проверяет ресурс и выявляет подобные случаи ещё до начала сотрудничества.
С 2020 года через ЮScan проверено более 550 тысяч заявок. За это время ЮKassa не получила штрафов за обслуживание запрещённых видов деятельности.
Кому это нужно? Если вы обрабатываете более 10 000 страниц в сутки, работаете с эквайрингом, маркетплейсами, KYC/AML-проверками или выполняете требования 152-ФЗ, ручные процессы неизбежно становятся узким местом. Меня зовут Ирина, я руковожу антифродом в ЮMoney. Расскажу, как устроен ЮScan: как обходить тысячи страниц, находить рискованный контент и превращать данные в понятный скоринг.
От URL до отчёта за минуты
Задача аудита — понять, чем занимается сайт. Современный ресурс — это тысячи URL, динамический контент, изображения, формы оплаты и постоянно меняющиеся данные.
ЮScan строит карту сайта с главной страницы: рекурсивно проходит разделы, открывает вложенные страницы, собирает содержимое. Сервис работает как браузер: выполняет JavaScript, ждёт загрузки динамических элементов, прокручивает страницы. Это позволяет находить контент, невидимый при простом запросе.
Асинхронный обход обеспечивает параллельную обработку ресурсов с пропускной способностью до 1000 сайтов в час.
Как сканировать сайты с динамическим контентом
Современные сайты редко представляют собой простой HTML. Контент загружается через JavaScript, страницы меняются при взаимодействии с пользователем, многие ресурсы блокируют автоматические запросы. Для стабильного обхода ЮScan использует библиотеку Playwright для автоматизации работы с веб-браузерами, которая позволяет:
обрабатывать динамически загружаемый контент;
работать с пользовательскими сценариями;
адаптировать скорость запросов;
распределять нагрузку при массовом обходе.
Но на практике массовые обходы зачастую приводят к ограничениям, связанным с антибот-системами: стандартных возможностей Playwright и даже кастомных доработок бывает недостаточно, особенно при взаимодействии с современными решениями вроде Cloudflare. Такие системы анализируют не только запросы, но и fingerprint браузера, поведение пользователя, а также сетевые характеристики.
В подобных случаях выручает Camoufox — инструмент, позволяющий значительно снизить вероятность детекта за счёт более реалистичной эмуляции браузерного окружения. Его ключевая особенность — работа на более низком уровне: вместо типичных JS-инъекций он использует модификации и хуки на уровне C/C++ кода браузера, благодаря чему изменения практически не обнаруживаются стандартными антибот-проверками. Такой подход позволяет формировать более «чистый» fingerprint и избегать типичных артефактов автоматизации, что заметно повышает стабильность и выживаемость сессий при парсинге.
Технологический стек краулера
ЮScan разработан на Python. API-слой построен на FastAPI, хранение данных — на PostgreSQL. Основа обхода — Scrapy, открытый фреймворк для веб-краулинга. Он управляет очередью страниц, асинхронно обрабатывает запросы и собирает информацию. Для работы с браузерным окружением — Playwright, он взаимодействует с сайтами как реальный пользователь, извлекает данные из динамических элементов.

Как устроена архитектура краулера
Для глубокого понимания внутреннего устройства Scrapy рекомендую изучить официальную документацию — QR-код на первоисточник прилагается.

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

Spider — основная сущность, определяющая логику обхода: стартовый URL, правила перехода по ссылкам и сбора данных. Краулер последовательно получает страницы, передаёт их в обработчик и формирует новые задачи на обход.
Item — структура данных для результата обхода. Разработчик описывает нужные поля: заголовок, описание товара, контакты, ссылки. Затем указывает, куда сохранять результат: в базу данных, файл или хранилище.
Основная логика краулера сводится к трём задачам:
описать страницы для обхода;
определить собираемые данные;
указать место сохранения.
В ЮScan задача сложнее. Нам нужно работать с произвольными ресурсами, анализировать большие объёмы данных и передавать результаты на последующие этапы проверки. Поэтому поверх Scrapy мы построили собственную логику масштабирования, анализа контента и оценки рисков.
Если хотите глубже разобраться в технической специфике сервиса, посмотрите видео с митапа ЮMoney.
Как из страниц получить понимание о рисках
После сбора данных начинается анализ. Цель — определить, что продаёт компания и есть ли признаки запрещённой или рискованной деятельности. ЮScan анализирует:
текстовые описания товаров и услуг;
изображения;
отзывы и упоминания;
внешние ссылки;
регистрационные данные;
ценовые блоки.

Для обработки используются ML-модели, embedding-подходы и LLM. Изображения переводятся в векторное представление и сравниваются с чувствительными категориями: алкоголь, табак, интернет-казино и другие группы риска.
LLM учитывают контекст страницы: описание товара, окружение изображения, смысл текста. Это снижает ложные срабатывания — позволяет отличать продажу запрещённого товара от упоминания без факта реализации.

Проверяем не только сайт, но и его окружение
Одной витрины недостаточно. ЮScan дополнительно анализирует внешние сигналы:
наличие домена в реестрах Роскомнадзора;
отзывы на сторонних площадках;
признаки мошенничества;
данные WHOIS;
совпадения с копиями других сайтов.
Система извлекает реквизиты: ИНН, КПП, ОГРН, контакты, документы — оферту, политику возврата и конфиденциальности. Это помогает отличить реальный бизнес от временной площадки без прозрачных данных.

ЮScan в цифрах
При подключении бизнеса к ЮKassa проводится комплексная проверка юридического лица. Анализ сайта — один из этапов, позволяющий убедиться, что компания соблюдает законодательство и не продаёт запрещённые товары. Наша задача — автоматизировать процесс, чтобы добросовестные компании быстрее начинали принимать платежи, а подозрительные заявки выявлялись на ранних этапах.
Автоматизация ускоряет подключение и повышает качество проверки. При ручной обработке специалисту приходилось бы последовательно просматривать страницы сайта, каталог товаров и внешние источники — на каждую заявку уходили бы часы. При этом оставался бы риск пропустить нарушения: запрещённые товары могут находиться не на главной странице, а в глубине каталога или отдельных карточках.

Результаты автоматизации:
в простых сценариях полный процесс проверки компании перед подключением занимает менее 3 часов;
половина компаний начинает принимать платежи в течение суток;
7 из 10 компаний завершают подключение за два дня.
Масштаб работы ЮScan подтверждается накопленной практикой: с 2020 года через ЮScan проверено более 550 тысяч заявок. Результат — ни одного штрафа за обслуживание запрещённых видов деятельности.
От внутреннего инструмента к отраслевому решению
ЮScan — внутренняя разработка ЮMoney для автоматизации проверки сайтов, которая несколько лет успешно применялась в собственных процессах компании, после чего продукт стал доступен внешним клиентам. Сегодня ЮKassa совместно с НСПК (оператор платёжной системы «Мир») предлагает ЮScan банкам и кредитным организациям, работающим с торгово-сервисными предприятиями. Банки — участники платёжной системы «Мир» — могут подключить сервис через НСПК.
Какие задачи в автоматизации проверки сайтов сложнее всего решить в ваших командах: качество классификации, работа с защищёнными ресурсами или анализ внешних источников?

