Решить ReCapcha v3
Элемент решает капчу формата reCAPTCHA v3 и сохраняет результат в указанную переменную. reCAPTCHA v3 — это вид капчи от Google, который основан на рейтинге человечности пользователя и не требует от пользователя выполнения каких-либо заданий.
Во многом эта капча похожа на reCAPTCHA v2, т.к. основной принцип остался тем же — пользователь получает от API reCAPTCHA токен, который отправляется в POST-запросе к сайту, а сайт верифицирует токен через API reCAPTCHA. Но при верификации токена API reCAPTCHA теперь возвращает рейтинг человечности — score
— число от 0.1 до 0.9. Получив это значение, сайт решает, как обрабатывать запрос.
Кроме того, появился новый параметр action
, который позволяет по-разному обрабатывать различные действия пользователя на сайте. При верификации токена API reCAPTCHA вернет имя действия, которое выполнил пользователь.
Как решать reCAPTCHA v3:
-
В первую очередь убедитесь, что на сайте действительно используется reCAPTCHA v3. Основные признаки v3:
- капча не видна пользователю и не требует кликов по картинкам;
- скрипт api.js загружается с параметром
render=sitekey
, например:https://www.google.com/recaptcha/api.js?render=6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE
. - в массиве
clients
конфигурационного объекта___grecaptcha_cfg
используется индекс 100000:___grecaptcha_cfg.clients[100000]_
.
-
Для решения v3 необходимо найти значения трех параметров:
-
sitekey — его можно найти в html в значении параметра
render
при загрузке api.js, или в параметреk
в URI iframe, в который подгружается reCAPTCHA, либо в javscript, в вызове функцииgrecaptcha.execute
, или в конфигурационном объекте___grecaptcha_cfg
. -
action — это значение нужно искать в js-коде сайта в вызове функции
grecaptcha.execute
. Пример: grecaptcha.execute(‘6LfZil0UAAAAAAdm1Dpzsw9q0F11-bmervx9g5fE’, {action: do_something}).Иногда его достаточно сложно найти, и требуется просмотреть все все js-файлы, подгружаемые сайтом. Кроме того, можно попробовать найти значение
action
в конфигурационном объекте___grecaptcha_cfg
, но очень часто оно может быть не задано там, а передаваться только при вызовеgrecaptcha.execute
— поэтому лучше просматривать js-код. -
pageurl — полный URL страницы, где вы хотите решить reCAPTCHA V3.
Кроме того, нужно понять, какое значение score вам требуется. Определить извне, при каком score сайт решит, что вы человек и пропустит ваш запрос, можно только экспериментально. Самый низкий рейгинг 0.1 — робот, а самый высокий 0.9 — человек. Но многие сайты ставят пороговые значения от 0.2 до 0.5, т.к. обычный человек зачастую получает довольно низкий рейтинг.
-
-
После получения токена, нужно корректно использовать его на сайте. Лучший метод понять, как это сделать — посмотреть на то, какие запросы отправляются на сайт, когда вы работаете с ним как обычный посетитель. Большинство браузеров позволяют легко это сделать в консоли разработчика, нужная вкладка обычно называется Network.
Токен обычно отправляется в параметрах POST-запроса, это может быть g-recaptcha-response как у reCAPTCHA V2, g-recaptcha-response-100000 или какой-либо другой параметр. Поэтому нужно внимательно просмотреть параметры запроса и найти, как именно передается токен, а затем сформировать аналогичный запрос.
Начальные условия
- Установите пакет Primo.2Captcha.Linux в Primo RPA Studio версии 1.24.8.2 и выше.
- Зарегистрируйтесь на сайте https://2captcha.com , чтобы получить ключ API и указать его в одноименном свойстве элемента. Учтите, что сервис платный.
Свойства
Описание общих свойств элемента см. в разделе Свойства элемента.
Символ *
в названии свойства указывает на обязательность заполнения.
- Ключ сайта* [String] — ключ капчи reCapcha. Пример:
"6LdKlZEpAAAAAAOQjzC2v_d36tWxCl6dWsozdSy9"
. - URL* [String] — URL страницы с капчей reCAPTCHA v3.
- Ключ API* [String] — ключ API.
- URL API* [String] — URL API. Значение по умолчанию:
"https://2captcha.com"
. - Точность [Double ] — необходимая точность. По умолчанию
0.4
. - Тайм-аут [Int32] — тайм-аут. По умолчанию
20000
миллисекунд. - Результат [String] — название переменной для хранения результата разбора капчи.
Только код
Данный элемент не используется в процессе с типом Только код (Pure code).