Skip to content

Решение reCAPTCHA v2 и невидимой reCAPTCHA v2 ​

reCAPTCHA v2 это самая распространённая версия Google reCAPTCHA: чекбокс «Я не робот» и, если проверка сомневается, задание с выбором картинок. Выглядит она так:

reCAPTCHA v2 с чекбоксом «Я не робот»

У reCAPTCHA v2 есть невидимый вариант (Invisible): чекбокса нет, проверка запускается при отправке формы или нажатии кнопки, а картинки появляются, только если нужно. Пример:

Невидимая reCAPTCHA v2

Обычная и невидимая reCAPTCHA v2 решаются одинаково и с одними и теми же параметрами. Вы отправляете в API Cap.Guru sitekey и адрес страницы, получаете готовый токен g-recaptcha-response и передаёте его сайту.

Что нужно ​

Как найти параметры (нажмите, чтобы раскрыть)

Пример страницы с reCAPTCHA v2: https://www.google.com/recaptcha/api2/demo

Нужны два значения.

Адрес страницы. Полный адрес страницы, где стоит reCAPTCHA, например https://www.google.com/recaptcha/api2/demo.

Sitekey. Откройте страницу, нажмите F12 и найдите ключ в одном из мест:

  • атрибут data-sitekey у элемента с классом g-recaptcha;
  • параметр k в адресе iframe reCAPTCHA (вкладка Network, запрос к recaptcha/api2/anchor).

Поиск sitekey reCAPTCHA в инструментах разработчика

Пример адреса iframe, ключ стоит после k=:

https://www.google.com/recaptcha/api2/anchor?ar=1&k=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&co=aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbTo0NDM.&hl=ru&v=qpy2aGtSgsYPZzCoYWjcaBCo&size=normal&cb=b10i8fn9469d

Для этой страницы нужны:

  • адрес страницы: https://www.google.com/recaptcha/api2/demo
  • sitekey: 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-

Как отличить невидимую v2. У невидимой reCAPTCHA v2 в адресе iframe стоит size=invisible, а у обычной size=normal. Если же в ссылке на скрипт есть параметр render=, это reCAPTCHA v3, её решение описано на странице reCAPTCHA v3.

Отправка задачи ​

http://api.cap.guru/in.php

ПараметрТипОбязателенОписание
keyСтрокаДаВаш API-ключ. Его можно посмотреть в личном кабинете
methodСтрокаДаuserrecaptcha: сообщает сервису, что вы решаете reCAPTCHA v2
googlekeyСтрокаДаSitekey, который вы нашли на странице
Например 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
pageurlСтрокаДаПолный адрес страницы с reCAPTCHA v2
Например https://www.google.com/recaptcha/api2/demo
softguruЧислоНетID разработчика ПО. Разработчики, интегрировавшие своё ПО с нашим сервисом, получают 1% от стоимости каждого такого запроса
jsonЧисло
По умолчанию: 0
Нет0: сервер вернёт ответ простым текстом
1: сервер вернёт ответ в формате JSON

Пример запроса:

http://api.cap.guru/in.php?key=YOUR_APIKEY&method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://www.google.com/recaptcha/api2/demo

ИЛИ

Пример запроса и ответа

Пример запроса ​

text
POST http://api.cap.guru/in.php
Host: api.cap.guru
Content-Type: application/json
json
{
  "key": "YOUR_API_KEY",
  "method": "userrecaptcha",
  "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  "pageurl": "https://www.google.com/recaptcha/api2/demo",
  "json": 1
}

В случае успеха вы получите OK|65787087 или {"status":1,"request":"65787087"}. Если номер задачи не пришёл, посмотрите полный список возможных ошибок.

Пример ответа ​

json
{
  "status": 1,
  "request": "65787087"
}

Получение ответа ​

http://api.cap.guru/res.php

ПараметрТипОбязателенОписание
keyСтрокаДаКлюч можно посмотреть тут
actionСтрокаДаget — получить ответ
idЧислоДаID капчи, полученный от in.php
jsonЧисло
По умолчанию: 0
Нет0 — сервер вернёт ответ в виде простого текста
1 — сервер вернёт ответ в формате JSON
Пример запроса/ответа

Пример запроса ​

text
POST  http://api.cap.guru/res.php
Host: api.cap.guru
Content-Type: application/json
json
{
  "key": "YOUR_API_KEY",
  "action": "get",
  "id": "XXXXXXXXXXXXXXXXXX", // for example 65787087
  "json": 1
}

После отправки задания нам, вы должны получить в ответ 'OK|03AFY_a8W0B6yEBwfbmzp6OEUr...' или {"status":1,"request":"03AFY_a8W0B6yEBwfbmzp6OEUr..."} в случае успешного выполнения запроса. Пожалуйста ознакомтесь с полным списоком возможных ошибок в случае если вы не получили ответ.

Пример ответа ​

json
{
 "status":1,
 "request":"03AFY_a8W0B6yEBwfbmzp6OEUr4GYgdREy1DAFvvtyI6FUzf5qY_738XQ9lIFB7huVK9qia1f9z1GyGWRW3HVEzIGU5JrR-DY2xAkVvdH23lbpBqFAvH79Rr4Cs5dsxENk_zoTa1jn70ORvBVfBHA_Fb-s_kqQEpmaxSIwf0fe8FGJjhsBoygXnvrmCnBPTf5ua4LoYSi4f12XcZdyf5dBRYPq4pHBqk5Ic2cj8InwX9ima-v9UKA64ugnIiUNFOB_BCHJ1tieaB-td4_B4MC8gBCzPQwwO5I3IDDaT17JR3uIBKfc70w-2mtDnfPznyT4dHZapWtZizLkGs2BSUsfM4nR9OtjshuYB8lwJkSfz3ynaBYOCE7SBbtVHCsjGgO7YtSI-BArHxUcPQdFILmtnSCvPV5IWEF_NxurJ3QlUMkaNvC6kHCphZZoJXpt8Q5f-Uyi0-bhGd4wjtqRFglyzpn8lEmqkxF2ydlQO1Ketclutd-w5wuuxoDDHJE7d5msHPjXYtVvuFh8A2nyAU4i2I5KfcmdMd3F2g"
}

Как использовать токен ​

Обычная reCAPTCHA v2. Вставьте токен в скрытое поле g-recaptcha-response формы и отправьте форму. В браузере это делается скриптом, например в Selenium или Playwright:

js
document.querySelector('[name="g-recaptcha-response"]').value = token;

Невидимая reCAPTCHA v2. Обычно сайт после проверки вызывает свою функцию callback и в ней отправляет форму. Найдите имя функции в атрибуте data-callback у элемента g-recaptcha или в вызове grecaptcha.render и вызовите её с токеном, либо подставьте токен в поле g-recaptcha-response и отправьте форму сами.

Запрашивайте токен непосредственно перед отправкой: токен reCAPTCHA действует около двух минут и подходит для одной проверки.

Советы ​

  • Сайт отклоняет токен. Проверьте, что sitekey и адрес взяты с одной и той же страницы и что токен использован в течение двух минут.
  • Решение кликами. Если вы работаете в браузере, reCAPTCHA v2 можно решать не токеном, а кликами по картинкам. Это описано на странице reCAPTCHA (клики).