RecaptchaV2EnterpriseTask : решение каптчи Google Enterprise
Объект содержит данные о задаче на решение ReCaptcha2 от Google версии Enterprise. Для обеспечения универсальности решения этого вида каптчи нам необходимо использовать все данные, которые Вы используете во время автоматизации заполнения формы на целевом сайте, включая прокси, user-agent браузера и cookies. Это позволит избежать любых проблем при изменении Google кода своей каптчи.
Каптча может решаться довольно долго по сравнению с обычной каптчей, но это компенсируется тем, что полученный g-captcha-response действует еще 60 секунд после решения каптчи.
Внимание!
Если прокси с авторизацией по IP, то необходимо обязательно добавить 116.203.55.208 в белый список.
Структура объекта
Параметр | Тип | Обязательный | Значение |
type | String | да | RecaptchaV2EnterpriseTask |
websiteURL | String | да | Адрес страницы на которой решается каптча |
websiteKey | String | да | Ключ-идентификатор reCAPTCHA на целевой странице. |
enterprisePayload | String | нет | Некоторые реализации виджета reCAPTCHA Enterprise могут содержать дополнительное поле Например:
grecaptcha.enterprise.render("some-div-id", {
sitekey: "6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
theme: "dark",
s: "2JvUXHNTnZl1Jb6WEvbDyBMzrMTR7oQ78QRhBcG07rk9bpaAaE0LRq1ZeP5NYa0N...ugQA"
}); |
apiDomain | String | нет | Адрес домена с которого загружать reCAPTCHA Enterprise. Например: Не используйте параметр, если не знаете зачем он нужен. |
proxyType | String | да | http - обычный http/https прокси |
proxyAddress | String | да | IP адрес прокси IPv4/IPv6. Не допускается:
|
proxyPort | Integer | да | Порт прокси |
proxyLogin | String | нет | Логин прокси-сервера |
proxyPassword | String | нет | Пароль прокси-сервера |
userAgent | String | нет | User-Agent браузера, используемый в эмуляции. Необходимо использовать подпись современного браузера, иначе Google будет возвращать ошибку, требуя обновить браузер. |
cookies | String | нет | Дополнительные cookies которые мы должны использовать во время взаимодействия с целевой страницей. Формат: cookiename1=cookievalue1; cookiename2=cookievalue2 |
Для enterprisePayload
- необходимо заменять функцию grecaptcha.enterprise.render
перед её вызовом на свою и забирать значение из её параметров. Функция существует после загрузки скрипта, а рендерится капча обычно сразу или по событию страницы, если капча отрендерится с текущим полем s
на клиенте, то токен с большой вероятностью принят не будет.
Оригинальную функцию можно вызывать без поля s
.
Пример запроса
Адрес https://api.capmonster.cloud/createTask
{
"clientKey":"dce6bcbb1a728ea8d871de6d169a2057",
"task":
{
"type":"RecaptchaV2EnterpriseTask",
"websiteURL":"https://mydomain.com/page-with-recaptcha-enterprise",
"websiteKey":"6Lcg7CMUAAAAANphynKgn9YAgA4tQ2KI_iqRyTwd",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN"
},
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.132 Safari/537.36"
}
}
Пример ответа
{
"errorId":0,
"taskId":407533072
}
Получение результата
Используйте метод getTaskResult чтобы получить решение ReCaptcha2. В зависимости от загрузки системы вы получите ответ через время в диапазоне от 10 с до 80 с.
Свойство | Тип | Описание |
gRecaptchaResponse | String | Хеш который необходимо подставить в форму с reCAPTCHA Enterprise в <textarea id="g-recaptcha-response" ..></textarea> . Имеет длину от 500 до 2190 байт. |
Пример:
{
"errorId":0,
"status":"ready",
"solution":
{
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}
}