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





ВНИМАНИЕ

Документация переехала на новое место сюда.

Документация на anticaptcha.atlassian.net больше не обновляется
и может быть устаревшей.












* Предыдущее название: 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Нет

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

 Подробнее

Секретный токен генерируется на сервере Google и вставляется на страницу в атрибуте data-stoken. Выглядит это примерно так:

<script type="text/javascript" src="...." data-type="normal"  data-ray="2ef1e98c77332d9b" async 
data-sitekey="6LfOYgoTAAAAAInWDVTLSc8Yblab-c9DaLblabla" 
data-stoken="urFaI2UjzL9Q4gf4a-aeCNAePAZUuq7nYbX40BVb69aXVq-apf_k-kZ7i-iXE2WxkokWB9rZv-ofOJPjbEh4YN3SyoVrsIorNOpeGSWx2D0"></script>

Токен действует пару минут после генерации, затем нужно снова зайти на страницу и получить его.

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

{
	"clientKey":"dce6bcbb1a728ea8d871de6d169a2057",
	"task":
		{
			"type":"RecaptchaV2Task",
			"websiteURL":"http://mywebsite.com/recaptcha/test.php",
			"websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
			"proxyType":"http",
			"proxyAddress":"8.8.8.8",
			"proxyPort":8080,
			"proxyLogin":"proxyLoginHere",
			"proxyPassword":"proxyPasswordHere",
			"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
		}
}

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

{
    "errorId":0,
    "taskId":407533072
}

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

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

Свойство

Тип

Описание

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

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

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


Пример:

{
    "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
}


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

{
    "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3",
	"cookies": {
		{"NID":"204=IVb1JejB0Jyh_ue6lhMAIJh1aZJRSgtSS_8yojbcjaD8nu7PSPE1lP1HE68y1t7CL0gP_LV4j1bMBTc-PYqPcd5sfKnZib5kv63fwss8h1hEEMqvyLCMAEn1g958ghuduaMNRtWU0X4JBf6qIW0omrWUr6nPs1tP5DuI8iH_-dU"}
	}
}