Skip to content

Решение reCAPTCHA v3 через API ​

reCAPTCHA v3 это невидимая версия Google reCAPTCHA. У неё нет ни чекбокса, ни картинок: скрипт на странице следит за поведением посетителя и ставит оценку от 0.0 до 1.0, где 1.0 означает «скорее всего человек». Сайт получает токен с этой оценкой и решает, пропускать ли запрос.

Кликать здесь не по чему, поэтому reCAPTCHA v3 решается токеном. Вы отправляете в API Cap.Guru sitekey и адрес страницы, получаете готовый токен и передаёте его сайту так же, как это сделал бы виджет.

Посмотреть, как работает reCAPTCHA v3, можно на демо-странице reCAPTCHA.

Что нужно ​

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

Нужны два значения со страницы, где стоит reCAPTCHA v3.

Адрес страницы. Полный адрес страницы, где работает reCAPTCHA v3, например https://test.cap.guru/demo/recap.

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

  • параметр render в ссылке на скрипт: https://www.google.com/recaptcha/api.js?render=6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT;
  • вызов вида grecaptcha.execute('6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT', {action: 'submit'}) в скриптах страницы;
  • параметр k в адресе iframe reCAPTCHA (вкладка Network, запрос к recaptcha/api2/anchor).

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

Берите оба значения с той страницы, где вы реально проходите проверку, иначе токен не пройдёт.

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

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

ПараметрТипОбязателенОписание
keyСтрокаДаВаш API-ключ. Его можно посмотреть в личном кабинете
methodСтрокаДаuserrecaptcha: сообщает сервису, что вы решаете reCAPTCHA
googlekeyСтрокаДаSitekey, который вы нашли на странице
Например 6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT
pageurlСтрокаДаПолный адрес страницы с reCAPTCHA v3
Например https://test.cap.guru/demo/recap
versionСтрокаДаv3: сообщает сервису, что это reCAPTCHA v3
min_scoreЧисло
По умолчанию: 0.1
НетМинимальная оценка токена, от 0.1 до 0.9. Если сайт отклоняет токены с низкой оценкой, укажите значение выше, например 0.7
cookiesСтрокаНетВаши cookies, которые будут использованы при решении капчи
userAgentСтрокаНетВаш User-Agent, который будет использован при решении капчи
softguruЧислоНетID разработчика ПО. Разработчики, интегрировавшие своё ПО с нашим сервисом, получают 1% от стоимости каждого такого запроса
jsonЧисло
По умолчанию: 0
Нет0: сервер вернёт ответ простым текстом
1: сервер вернёт ответ в формате JSON
proxyСтрокаНетФормат: логин:пароль@151.142.23.32:3128
Подробнее о прокси здесь
proxytypeСтрокаНетТип вашего прокси: HTTP, HTTPS, SOCKS4, SOCKS5

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

http://api.cap.guru/in.php?key=YOUR_APIKEY&method=userrecaptcha&version=v3&googlekey=6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT&pageurl=https://test.cap.guru/demo/recap

ИЛИ

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

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

text
POST http://api.cap.guru/in.php
Host: api.cap.guru
Content-Type: application/json
json
{
  "key": "YOUR_API_KEY",
  "method": "userrecaptcha",
  "version": "v3",
  "googlekey": "6LdSQV8mAAAAAA8tgiox2isjB1H4QSr-pNBXajUT",
  "pageurl": "https://test.cap.guru/demo/recap",
  "min_score": 0.1,
  "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. В зависимости от сайта это одно из трёх:

  • скрытое поле g-recaptcha-response в форме;
  • поле или параметр в запросе, который сайт отправляет на свой сервер после grecaptcha.execute;
  • функция callback, которую сайт передаёт reCAPTCHA.

Куда сайт кладёт токен, видно в скриптах страницы или на вкладке Network. Запрашивайте токен непосредственно перед отправкой: токен reCAPTCHA действует около двух минут и подходит для одной проверки.

Советы ​

  • Сайт отклоняет токен. Проверьте, что sitekey и адрес взяты с одной и той же страницы и что токен использован в течение двух минут.
  • Сайту нужна высокая оценка. Некоторые сайты отсекают низкие оценки. Укажите min_score выше, например 0.7, а также передайте свои userAgent и cookies и используйте качественный прокси, чтобы решение шло в окружении, похожем на ваше.
  • Невидимая reCAPTCHA v2 не то же самое, что v3. Если в адресе iframe есть size=invisible, а в ссылке на скрипт нет параметра render=, это невидимая reCAPTCHA v2. Решайте её как описано на странице reCAPTCHA v2.