1. Цель проекта
Разработать и предоставить модуль на Python, который автоматически решает слайдер-капчу, используемую на веб-портале. Модуль должен работать полностью локально (без внешних API) и стабильно решать капчу за 1.5 – 3 секунды.
2. Технические детали капчи
Капча находится внутри веб-компонента <lib-zit-captcha-puzzle>.
Механика: слайдер-пазл («Потяните вправо»). Изображение разбито на сетку 3x3 (или аналогичную), плитки сдвигаются пропорционально движению ползунка. Цельная картинка собирается только в одном правильном положении.
Параметры: холст (<canvas>) имеет размер 312×175 пикселей. Слайдер (<input type="range">) имеет 15 положений (min=0, max=14).
Ключевая особенность: капча не имеет статичного визуального маркера (например, «белого выреза»), что делает стандартные методы OpenCV нестабильными.
Капча появляется на портале редко, поэтому для обучения модели потребуется генерация синтетических данных.
3. Исходные материалы
HAR-файл (сетевой лог), содержащий запросы портала к серверу капчи и параметры captchaType: 2.
Скриншот реальной капчи (изображение canvas) и несколько копий HTML-кода виджета (widget_*.html) в различных состояниях.
4. Функциональные требования
Создание синтетического датасета: Разработать генератор (тренажёр), максимально точно имитирующий поведение реальной капчи на основе предоставленных материалов. Генератор должен создавать разнообразные реалистичные фоны с шумом и корректно воспроизводить логику сдвига плиток.
Разработка решающего алгоритма: Создать решение (предпочтительно на основе нейронной сети, например, YOLOv8) которое по скриншоту canvas определяет правильное положение слайдера (значение от 0 до 14).
Обучение модели: Исполнитель самостоятельно генерирует датасет и обучает модель.
Реализация скрипта управления браузером: Разработать Python-скрипт (рекомендуется Playwright), который:
Подключается к Chrome через Chrome DevTools Protocol (CDP).
Обнаруживает капчу на странице (элемент <lib-zit-captcha-puzzle>, canvas и слайдер).
Делает скриншот canvas, передаёт его в модель и получает предсказанное положение.
Эмулирует перетаскивание слайдера в нужное положение (реалистичная траектория с микро-задержками).
Скорость работы: Полный цикл решения (от обнаружения капчи до завершения перетаскивания) должен занимать не более 2 секунд (на CPU).
Точность: На предоставленном исполнителем синтетическом тестовом наборе точность должна быть не менее 95% правильных решений.
5. Требования к результату
Модель в формате PyTorch (.pt).
Скрипт генерации синтетического датасета.
Финальный Python-скрипт управления браузером с интегрированной моделью.
Краткая инструкция по запуску и дообучению.
Python 3.10+, Windows 10.
6. Критерии приёмки
Запуск финального скрипта и успешное прохождение не менее 20 случайных капч подряд в тренажёре (генераторе), созданном исполнителем.
Подтверждение точности > 95% на тестовой выборке.
Время решения одной капчи (от появления до окончания перетаскивания) ≤ 3 секунд.
Опубликован 08.05.2026 в 18:52