Интеграция анти-капчи в Selenium, Puppeteer и Playwright без лишних падений
Пробиваем защиту любой сложности: в реальности ломается не капча, а обвязка вокруг неё. Для Selenium и Playwright нужен явный wait на появление challenge-элемента, для Puppeteer — стабильный хук на DOMMutation и сетевые ответы. Если триггер ловится поздно, токен уходит в пустоту, а скрипт начинает ходить по кругу.
Дальше схема одна: выделяешь модуль solveCaptcha(), который принимает sitekey, url и тип челленджа, возвращает token и пишет его в нужное поле или callback. Не смешивай получение токена с логикой логина: так проще повторить запрос, если сайт вернул новый challenge. Для браузерных фреймворков это особенно важно, потому что iframe, shadow DOM и hidden input ломают прямую запись.
Бенчмарк сервисов решения капчи: сравнивай не только среднее время ответа, но и долю повторных попыток, формат токена и стабильность на прокси. Селениум любит явные ожидания, Пуппетер — ручной контроль событий, Плейрайт — аккуратную работу с контекстами и изоляцией куки. Один и тот же сервис может вести себя нормально в одном стеке и сыпаться в другом из-за таймаутов или неправильного target frame.
Снижаем косты на распознавание: сначала проверь, можно ли переиспользовать уже полученный токен в пределах сессии, потом ставь retry только на транспортные ошибки, а не на каждую неудачную валидацию. Логируй sitekey, тип капчи, время solve и ответ валидации — без этого отладка превращается в угадайку.
Чем чище разделены ловля challenge, решение и инъекция токена, тем стабильнее парсинг и меньше списаний на пустые попытки.
Анти-капча стек
@anti_captcha_stack_ubt
Интеграция анти-капчи в Selenium, Puppeteer и Playwright без лишних падений
Этот пост опубликован в Telegram-канале Анти-капча стек. Подписаться можно по ссылке: @anti_captcha_stack_ubt.