Логотип «2Captcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как определить тип капчи на сайте

Грегори Фишер

Технический специалист

Кратко: Перед интеграцией с 2Captcha API важно точно определить тип защиты на целевом сайте. От этого зависят параметры запроса (type,websiteKey, websiteURL), формат токена и способ его применения. В этом гайде — пошаговая инструкция по идентификации капчи через DevTools и таблица с признаками популярных типов.


Классификация капч и требования API

Разные системы защиты работают по-разному:

Тип капчи Ключевой параметр Тип задачи API v2 Особенность
reCAPTCHA v2 data-sitekey RecaptchaV2TaskProxyless Требуется токен в поле g-recaptcha-response
reCAPTCHA v3 data-sitekey RecaptchaV3TaskProxyless Возвращает score, нет видимого виджета
Cloudflare Turnstile data-sitekey TurnstileTaskProxyless Аналог reCAPTCHA, но свой домен
GeeTest v3/v4 gt, challenge GeeTestTaskProxyless Slider или puzzle, динамические параметры
FunCaptcha public_key FunCaptchaTaskProxyless iframe с игрой, нужен blob или token

Важно: Если отправить задачу с неверным type или параметрами, API вернет ошибку ERROR_BAD_PARAMETERS или токен будет отклонен целевым сайтом.


Шаг 1. Откройте DevTools

  1. Нажмите F12 или Ctrl+Shift+I (Cmd+Option+I на Mac).
  2. Перейдите на вкладку Elements для анализа HTML или Network для отслеживания запросов.

Шаг 2. Найдите признаки капчи в коде страницы

Поиск по HTML (вкладка Elements)

Используйте Ctrl+F и ищите по ключевым строкам:

Copy
recaptcha
turnstile
geetest
arkose
data-sitekey

Примеры разметки

Google reCAPTCHA v2

html Copy
<div class="g-recaptcha" data-sitekey="6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-"></div>
<script src="https://www.google.com/recaptcha/api.js"></script>

Cloudflare Turnstile

html Copy
<div class="cf-turnstile" data-sitekey="0x4AAAAAAAvkH5Z8J9Z8J9Z8"></div>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js"></script>

GeeTest v4

html Copy
<div id="captcha"></div>
<script>
  initGeetest4({ captchaId: "abc123", product: "bind" });
</script>

Шаг 3. Проверьте загружаемые скрипты (вкладка Network)

  1. Обновите страницу с открытой вкладкой Network.
  2. Отфильтруйте по JS или введите в поиск:
Copy
recaptcha/api.js
turnstile/v0/api.js
geetest.com
arkoselabs.com

Совет: Если скрипт загружается динамически — включите фильтр Preserve log и выполните действие, которое вызывает капчу (клик, отправка формы).


Шаг 4. Извлеките sitekey / параметры

Где искать sitekey:

Источник Как найти
Атрибут HTML data-sitekey="..." в div виджета
URL iframe Параметр k=... в src iframe
JS-конфиг В объекте ___grecaptcha_cfg или hcaptcha.render()
Сетевой запрос В запросах к api.js или challenge

Пример извлечения для reCAPTCHA:

javascript Copy
// В консоли браузера
document.querySelector('.g-recaptcha').dataset.sitekey;
// или
___grecaptcha_cfg.clients[0].P.V.s; // может меняться

Особые случаи

Невидимая капча

Не отображает checkbox. Признаки:

  • Виджет появляется только после submit или подозрительного действия.
  • В коде есть grecaptcha.execute() или size: "invisible".
  • Нет видимого div.g-recaptcha.

Решение: Ищите sitekey в JS-файлах или сетевых запросах при инициализации.

Динамическая загрузка

Капча рендерится после:

  • Клика по кнопке;
  • Валидации формы;
  • Определения бот-поведения.

Решение:

  1. Откройте вкладку Network.
  2. Выполните целевое действие.
  3. Отслеживайте новые запросы к recaptcha, geetest и т.д.

Shadow DOM

Виджет скрыт внутри #shadow-root.

Как найти:

  1. В DevTools включите Show user agent shadow DOM (настройки → Preferences → Elements).
  2. Или выполните в консоли:
javascript Copy
document.querySelector('target-element').shadowRoot.innerHTML;

Примерные данные для капч

Признак reCAPTCHA Turnstile GeeTest FunCaptcha
Домен скрипта google.com/recaptcha challenges.cloudflare.com static.geetest.com arkoselabs.com
Класс виджета g-recaptcha cf-turnstile geetest_<...> arkose-<...>
Параметр data-sitekey data-sitekey data-gt, challenge data-pkey
Iframe src recaptcha/api2/anchor turnstile/v0 geetest.com/fullpage arkoselabs.com/fc/
Тип задачи API v2 RecaptchaV2TaskProxyless TurnstileTaskProxyless GeeTestTaskProxyless FunCaptchaTaskProxyless

Работа с API 2Captcha

Создание задачи

Endpoint: POST https://api.2captcha.com/createTask

Пример: reCAPTCHA v2

json Copy
{
  "clientKey": "ВАШ_API_KEY",
  "task": {
    "type": "RecaptchaV2TaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
    "isInvisible": false
  }
}

Пример: Cloudflare Turnstile

json Copy
{
  "clientKey": "ВАШ_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com",
    "websiteKey": "0x4AAAAAAAvkH5Z8J9Z8J9Z8"
  }
}

Пример: GeeTest v4

json Copy
{
  "clientKey": "ВАШ_API_KEY",
  "task": {
    "type": "GeeTestV4TaskProxyless",
    "websiteURL": "https://example.com",
    "captchaId": "abc123xyz",
    "initParameters": {}
  }
}

Ответ при успехе:

json Copy
{
  "errorId": 0,
  "taskId": 123456789
}

Получение результата

Endpoint: POST https://api.2captcha.com/getTaskResult

json Copy
{
  "clientKey": "ВАШ_API_KEY",
  "taskId": 123456789
}

Ответ с токеном:

json Copy
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "gRecaptchaResponse": "03AGdBq24FBCD...",
    "token": "eyJ0eXAiOiJKV1QiLCJh..." // для Turnstile/hCaptcha
  }
}

Рекомендация: Опрос getTaskResult выполняйте с интервалом 3–5 секунд.


Внедрение токена в форму

reCAPTCHA v2/v3

javascript Copy
document.getElementById('g-recaptcha-response').value = '03AGdBq24FBCD...';
document.querySelector('form').submit();

Turnstile

javascript Copy
// Turnstile обычно сам подставляет токен через callback
// Если нужно вручную:
document.querySelector('[name="cf-turnstile-response"]').value = 'TOKEN';

GeeTest

javascript Copy
// Передайте параметры из solution в форму:
{
  "geetest_challenge": "...",
  "geetest_validate": "...",
  "geetest_seccode": "..."
}

Заключение

Заключение

Корректное определение типа капчи — это ключевой шаг перед интеграцией с API. Ошибка на этом этапе почти всегда приводит к невалидным токенам, дополнительным запросам и сложной отладке. Гораздо эффективнее заранее точно определить систему защиты, чем разбираться с последствиями неверной конфигурации.

Использование DevTools позволяет быстро и надёжно извлечь все необходимые параметры: тип капчи, sitekey, дополнительные идентификаторы и особенности рендеринга (invisible, динамическая загрузка, Shadow DOM). После этого остаётся лишь правильно сопоставить их с типом задачи в API и корректно передать в запрос.

Итоговый чек-лист

Перед отправкой задачи убедитесь, что:

  • тип капчи определён без предположений, а по фактическим признакам страницы
  • все ключевые параметры (websiteKey, captchaId, gt, challenge и др.) корректно извлечены
  • websiteURL указан полностью и совпадает с реальной страницей
  • выбран соответствующий тип задачи API
  • учтены особенности рендеринга (invisible / динамическая / Shadow DOM)
  • реализована корректная обработка и получение результата
  • токен вставляется в строго ожидаемое поле формы

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