RecaptchaV2Task : решение капчи Google

* Предыдущее название: NoCaptchaTask. Будет поддерживаться вечно, обновление кода не требуется.

Объект содержит данные о задаче на решение рекапчи гугла в браузере на компьютере работника. Для обеспечения универсальности решения этого вида капчи нам необходимо использовать все данные, которые вы используете во время автоматизации заполнения формы на целевом сайте, включая прокси, user-agent браузера и cookies. Это позволит избежать любых проблем при изменении гуглом кода своей капчи.

Наша система решения выстроена таким образом, что браузер работника не получает данные о ваших прокси-серверах, cookies, и других данных. Все эти данные хранятся на нашем сервере и стираются после выполнения задания. Машина работника не имеет доступа к этим данным и взаимодействует исключительно с нашими серверами.

Перед выполнением задания система проверяет работоспособность вашего прокси-сервера и только после этого передает задачу работнику. Прокси должен обязательно обработать тестовый запрос в течение 5 секунд, иначе задача пометится ошибкой ERROR_PROXY_TIMEOUT и будет отменена.

Капча может решаться довольно долго по сравнению с обычной капчей, но это компенсируется тем, что полученный g-captcha-response действует еще 120 секунд после того, как работник решил капчу.

пример капчи


Структура объекта

Параметр
Тип
Обязательный
Значение
typeStringДаRecaptchaV2Task
websiteURLStringДаАдрес страницы на которой решается капча
websiteKeyStringДа

Ключ-индентификатор рекапчи на целевой странице.
<div class="g-recaptchadata-sitekey="ВОТ_ЭТОТ"></div> 
Есть инструкция как получить этот ключ если его нет в HTML.

websiteSTokenStringНет

Секретный токен для предыдущей версии рекапчи. В большинстве случаев сайты используют новую версию и этот токен не требуется.

recaptchaDataSValueStringНет

Некоторые реализации виджета рекапчи могут содержать дополнительный параметр "data-s" в div'е рекапчи, который является одноразовым токеном и должен собираться каждый раз при решении рекапчи.
<div class="g-recaptchadata-sitekey="some sitekey" data-s="ВОТ_ЭТОТ"></div>
Если вы решаете рекапчу на доменах google.com, и используете безбраузерный подход, то используйте "cookies" которые мы передаем в ответе getTaskResult.

proxyTypeStringДаhttp - обычный http/https прокси
https - попробуйте эту опцию только если "http" не работает (требуется для некоторых кастомных прокси)
socks4 - socks4 прокси
socks5 - socks5 прокси
proxyAddressStringДа

IP адрес прокси ipv4/ipv6. Не допускается:

  • использование имен хостов.
  • использование прозрачных прокси (там где можно видеть IP клиента)
  • использование прокси на локальных машинах
proxyPortIntegerДаПорт прокси
proxyLoginStringНетЛогин от прокси-сервера
proxyPasswordStringНетПароль от прокси-сервера
userAgentStringДаUser-Agent браузера, используемый в эмуляции. Необходимо использовать подпись современного браузера,
иначе Google будет возвращать ошибку, требуя обновить браузер.
cookiesStringНет

Дополнительные cookies которые мы должны использовать во время взаимодействия с целевой страницей.

Формат: cookiename1=cookievalue1; cookiename2=cookievalue2

isInvisibleBooleanНетУказать что рекапча невидимая. Флаг отобразит соответствующий виджет рекапчи у наших работников.
В большинстве случаев флаг указывать не нужно, т.к. невидимая рекапча распознается автоматически, но на это требуется несколько десятков задач для обучения системы.


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

Адрес https://api.anti-captcha.com/createTask

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

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

Используйте метод getTaskResult чтобы получить решение капчи. Делайте первый запрос к этому методу через 10 секунд чтобы дать работнику время.

Свойство

Тип

Описание

gRecaptchaResponseStringХеш который необходимо подставить в форму с рекапчей в <textarea id="g-recaptcha-response" ..></textarea> . Имеет длину от 500 до 2190 байт.
cookiesArray

Опциональный массив кук, которые были использованы при решении рекапчи.
Применимо только к доменам и поддоменам google.com .

gRecaptchaResponseMD5StringКонтрольная сумма gRecaptchaResponse в MD5. Передается только если добавить параметр isExtended со значением true в методе getTaskResult.
Сделано исключительно для отладки, чтобы разработчик мог убедиться что получает хэш целиком. 


Пример:


Пример с рекапчей на google.com: