Playwright

Распознавание капчи в Playwright: обход капчи в Node.js и Python

Тесты и парсеры на Playwright больше не зависают на reCAPTCHA, Turnstile, GeeTest v3 или капчах-картинках. Дождитесь токена через await из SDK для Node.js или Python либо доверьте прохождение проверки расширению. Каждое решение выполняется на вашем собственном компьютере.

Windows x64·Работает локально, поэтому капча не покидает ваш компьютер
  • SDK для Node.js и Python
  • Любой движок Playwright
  • Без платы за каждое решение
капч в месяц40,000
40.0k250.0k
В других сервисах поштучно, примерно $1.40 за 1000$56.00
CapSkip Bronze, фиксированно$35.00
$21.00остаётся у вас в карманекаждый месяц при таком объёме

Сервис распознавания капчи для Playwright закрывает тот единственный шаг, который Playwright не может заскриптовать: его локаторы кликают, вводят текст и автоматически ждут, но ни один из них не способен выдать ответ, которого требует reCAPTCHA, Cloudflare Turnstile или картинка с искажённым текстом. CapSkip выдаёт его в десктопном приложении, которое работает рядом с вашими тестами, на ПК с Windows или VPS под вашим контролем. Тест или задача парсинга, встретив проверку, продолжает работу, а не падает по таймауту, и каждое решение покрывается одной фиксированной месячной лицензией.

Поддерживаются оба языковых лагеря Playwright. Проекты на TypeScript и JavaScript подключают npm-пакет capskip и ожидают его Promise между вызовами локаторов; проекты на Python используют CapSkip с sync_playwright или AsyncCapSkip с async_playwright, у которых одинаковые имена методов. Решение представляет собой обычный HTTP-запрос к приложению, а не действие в браузере, поэтому один и тот же хелпер работает в проектах Chromium, Firefox и WebKit. Для Playwright доступны все типы, которые поддерживает CapSkip: reCAPTCHA v2, v3 и Enterprise, виджеты Turnstile и страницы проверки, слайдеры GeeTest v3, ALTCHA, CaptchaFox, Capy, Friendly Captcha и AWS WAF CAPTCHA, а также тысячи картинок с искажённым текстом.

Хелперы на основе распознавания аудио, такие как playwright-recaptcha, работают лишь до тех пор, пока Google продолжает предлагать аудиозадание, а оно обычно пропадает, как только IP начинает выглядеть подозрительно; настоящему токену эта лазейка не нужна. Наборы тестов, уже подключённые к 2Captcha, Anti-Captcha или CapSolver, тоже могут сохранить эти вызовы, поскольку приложение локально отвечает на те же API.

Не хотите возиться с токенами? Запустите постоянный контекст Chromium с загруженным расширением CapSkip, в видимом режиме или в новой headless-реализации, и проверки будут проходиться внутри страницы, пока ваш тест ждёт следующий локатор. Расширение обращается к запущенному приложению CapSkip, поэтому держите приложение открытым. Читайте руководство по расширению

Что получает проект на Playwright от CapSkip

Клиенты для TypeScript и Python

npm install capskip ставит клиент на Promise с типизацией; pip install capskip даёт CapSkip для sync_playwright и AsyncCapSkip для async_playwright, оба с одинаковыми именами методов.

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

SDK отправляет HTTP-запрос приложению CapSkip и никогда не управляет браузером, поэтому один и тот же хелпер решения обслуживает ваши проекты chromium, firefox и webkit без ветвлений.

Токены вставляются через page.evaluate

Прочитайте sitekey через локатор, передайте его в recaptcha() или turnstile() вместе с page.url, затем запишите ответ в скрытое поле ответа и вызовите callback виджета, если он есть.

Решение только при появлении проверки

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

Место для каждого воркера тестов

Playwright Test запускает тесты в параллельных воркерах, и каждый из них может решать капчу одновременно с другими. Ограничения на потоки нет, а лицензия фиксированная, поэтому больше воркеров никогда не означает больший счёт.

Вызовы 2Captcha и CapSolver продолжают работать

Набор тестов, построенный на 2Captcha, Anti-Captcha или CapSolver, остаётся как есть. Выберите этот сервис в эмуляторе CapSkip и нажмите Add в строке Hosts file. После этого на его запросы отвечает ваш собственный компьютер, а не платная очередь.

Три способа обойти капчу в Playwright

Python
from playwright.sync_api import sync_playwright
from capskip import CapSkip

solver = CapSkip(host="127.0.0.1", port=8080)

with sync_playwright() as p:
    page = p.chromium.launch().new_page()
    page.goto("https://example.com/login")

    sitekey = page.get_attribute(".g-recaptcha", "data-sitekey")
    token = solver.recaptcha(sitekey=sitekey, url=page.url)["code"]

    page.evaluate(
        "t => document.getElementById('g-recaptcha-response').innerHTML = t", token
    )
    page.click("button[type=submit]")

Python с sync_playwright: прочитайте sitekey reCAPTCHA, получите токен от CapSkip на 127.0.0.1, запишите его на страницу и отправьте форму.

Расширение в постоянном Chromium

Вообще без кода для решения: Playwright запускает Chromium с расширением CapSkip, и оно проходит виджеты на странице. То же расширение работает в обычных Chrome и Firefox.

SDK для Node.js, Python и .NET

Вызывайте через await по одному методу на каждый тип капчи из TypeScript или Python либо используйте клиент .NET в Playwright для .NET. Каждый результат возвращается готовым к вставке.

Локальный API для вашего текущего кода

Существующие запросы в стиле 2Captcha обрабатывает приложение, поэтому старые тесты продолжают работать. Playwright для Java или любая другая привязка может обращаться к HTTP API напрямую.

Направьте скрипт Playwright на живой виджет

Наше демо reCAPTCHA v2 загружает настоящий виджет Google. Направьте на него свой скрипт Playwright, выполните шаг решения и убедитесь, что форма принимает токен, прежде чем переходить к своим целям.

Настройте распознавание капчи для Playwright за три шага

  1. Установите приложение на доступную машину

    Установите CapSkip рядом с вашим тест-раннером на Windows или на любой VPS, до которого ваши CI-задачи могут достучаться по сети, затем запустите его и оставьте ждать первого решения. Скачать установщик для Windows

  2. Войдите с лицензией или пробным периодом

    Данные для входа придут на почту после оформления подписки; введите их в приложении. Чтобы сначала попробовать, пробный период даёт 3 дня и 500 решений на одном устройстве, карта не нужна. Оформите бесплатный пробный период

  3. Встройте шаг решения в свои тесты

    Установите пакет npm или pip, оберните клиент в хелпер или фикстуру и вызывайте его везде, где может появиться проверка. Имена методов и параметры описаны на странице SDK. Открыть руководство по SDK

CapSkip против API с оплатой за решение в наборе тестов Playwright

Строки ниже показывают, что меняется для набора тестов Playwright, когда распознавание переезжает с платного API на ваш собственный компьютер.

ФункцияCapSkip2Captcha & API-сервисы
Как вы платитеБезлимитные решения по фиксированной цене от $35 в месяцКредиты списываются за каждую тысячу решений и растут с каждым запуском
Где происходит решениеНа Windows-машине или VPS под вашим контролемВ облаке провайдера или руками платных исполнителей
Языки PlaywrightSDK для Node.js и Python, клиент .NET, локальный HTTP APIИх клиентские библиотеки плюс ключ API
Параллельные воркеры тестовБез лимита потоков, предел задаёт только ваше железоЛимиты параллельности или доплаты
Тесты, написанные для 2CaptchaПродолжают работать через встроенный эмуляторПривязаны к этому API и его предоплаченному балансу
Время решения капчи-картинкиОколо 0.1 секунды, без пути через интернетСетевая задержка и очередь при каждом решении
Данные капчиНикогда не покидает машину, где идёт решениеКаждый раз загружается во внешний сервис

Цены

Хватит платить за каждое решение

Выберите лицензию

Лицензия Bronze

$35/ месяц

Подписаться на Bronze

Мгновенная активация лицензии

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

Функции те же. Больше машин, больше производительность.

Каждая машина решает настолько быстро, насколько позволяют её процессор и память. Больше машин означает больше одновременных потоков, поэтому Silver решает вдвое больше капч одновременно, а Gold втрое больше.

  • Безлимитное решение, без дневных ограничений
  • Безлимитные потоки, скорость растёт вместе с оборудованием
  • Точность распознавания от 90% до 100%
  • Прямая замена API основных сервисов распознавания
  • Работает почти с любым инструментом, без программирования
  • REST API, SDK и расширение для браузера
  • Бесплатное обучение, когда появляется новый тип капчи
  • Работает на вашей машине, ничего с неё не уходит

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

Просто хотите сначала попробовать?

Начните с бесплатного 3-дневного пробного периода и решите 500 капч любого типа на своих целевых сайтах.

Оформите бесплатный пробный период

Как справиться с капчей в Playwright, шаг за шагом

Начните с выбора места, где будет происходить решение. Playwright предлагает два удобных места: внутри браузера, через расширение CapSkip, или внутри кода тестов, через SDK. Оба работают из Node.js и Python, и в одном репозитории можно использовать каждый там, где он уместен.

Внутри браузера. Запустите постоянный контекст Chromium, который загружает расширение, в видимом режиме или в новом headless-режиме Chromium, потому что старая headless-оболочка не принимает расширения. Оно замечает виджет reCAPTCHA, Turnstile или GeeTest v3, как только тот отрисуется, и решает его, пока ваш следующий локатор ждёт. Для капчи-картинки один раз отметьте в расширении картинку и её поле ввода.

Внутри кода. Получите sitekey из виджета локатором, отправьте его вместе с page.url в SDK, затем через page.evaluate установите скрытое поле, которое читает сайт: g-recaptcha-response для reCAPTCHA, cf-turnstile-response для Turnstile. Вызовите callback виджета, если страница его объявляет, затем отправьте форму. Google держит токен reCAPTCHA действительным примерно две минуты, поэтому решайте прямо перед отправкой, а не в начале теста.

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

Переходите с платного сервиса? На машине, где работает CapSkip, выберите 2Captcha или Anti-Captcha в настройках эмулятора, а затем одним щелчком позвольте приложению прописать этот сервис в файле hosts Windows. Ваши вызовы Playwright остаются как есть, и каждая поддерживаемая капча решается локально.

Руководства по теме: капча в Patchright · капча в Camoufox · капча в Crawlee

Как обойти капчу в Playwright, не написав код для её решения?
Дайте Playwright постоянный контекст Chromium с расширением CapSkip внутри и оставьте приложение CapSkip запущенным. Расширение находит виджеты reCAPTCHA, Turnstile и GeeTest v3 и решает их на странице, так что вашему скрипту остаётся только дождаться следующего элемента. Капчи-картинки требуют одного дополнительного шага настройки: укажите расширению картинку и поле, куда вводится ответ.
Какие браузеры Playwright работают с CapSkip?
Все три, если использовать SDK. Решение представляет собой HTTP-вызов из процесса тестов к приложению, поэтому Chromium, Firefox и WebKit ведут себя одинаково. С расширением иначе: Playwright загружает расширения только в Chromium, поэтому держите проект Chromium для запусков без кода, а во всех остальных используйте SDK.
Подходит ли он для Playwright Test с множеством параллельных воркеров?
Да. Создайте клиент в фикстуре уровня воркера или в общем хелпере, и каждый воркер сможет решать одновременно с остальными. CapSkip не ограничивает потоки, поэтому пропускная способность зависит только от возможностей машины, на которой идёт решение, а добавление воркеров никак не меняет ежемесячную плату.
Можно ли решать невидимую reCAPTCHA и reCAPTCHA v3 из Playwright?
Да. Для невидимого виджета v2 передайте флаг invisible; для v3 отправьте версию вместе с action, который сайт указывает в своём вызове. CapSkip в любом случае возвращает токен, но Google всё равно оценивает трафик v3 по IP и отпечатку браузера, поэтому ни один сервис распознавания не может гарантировать оценку; больше всего помогает чистый прокси.
Помешает ли headless-режим работе CapSkip?
Только не для SDK, который никогда не просит браузер что-либо решать, поэтому headless-запуски в CI ведут себя так же, как запуски с видимым окном. Важно это лишь для расширения: ему нужен видимый браузер или новый headless-режим Chromium, поскольку устаревшая headless-сборка расширения не поддерживает.
Как провести Playwright через Cloudflare Turnstile?
Прочитайте sitekey из виджета Turnstile, вызовите turnstile() с ним и page.url и запишите токен в поле cf-turnstile-response перед отправкой. CapSkip также проходит полностраничную проверку Cloudflare; там ответ включает user agent, с которым она была решена, поэтому держите этот контекст браузера на том же user agent.
Может ли мой набор тестов Playwright сохранить вызовы 2Captcha или Anti-Captcha?
Да. Включите соответствующий эмулятор в CapSkip и нажмите Add в строке Hosts file. После этого на запросы, которые ваш код отправляет этому сервису, отвечает приложение. В тестах ничего не меняется, и баланс не тратится. Запускайте тесты на машине с CapSkip, поскольку файл hosts действует только на этом компьютере.
Достаточно ли одного playwright-recaptcha или stealth-патча?
Обычно ненадолго. Пакеты на основе аудио вроде playwright-recaptcha перестают работать, когда Google не выдаёт аудиозадание, а это часто случается с помеченными IP. Stealth-патчи и сборки вроде Patchright делают проверки реже, но ни одну не решают. Оставьте stealth, если он вам нравится, а CapSkip пусть отвечает на всё, что всё равно прорвётся.

Пусть ваши запуски Playwright завершаются зелёными

Установите CapSkip, добавьте один шаг решения или расширение, и тесты, которые раньше зависали на проверке, дойдут до последнего assert. Безлимитные решения по одному фиксированному месячному тарифу.