Looking for international version of our service? Go to 2captcha.com

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

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

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

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

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

Кратко: Перед интеграцией с RuCaptcha 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 RuCaptcha

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

Endpoint: POST https://api.rucaptcha.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.rucaptcha.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)
  • реализована корректная обработка и получение результата
  • токен вставляется в строго ожидаемое поле формы

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