Skip to main content
В данной статье будет представлена инструкция по интеграции API распознавания протокола Recaptcha2, которая позволяет пользователям не распознавать и не нажимать на изображения капчи Recaptcha2, а просто отправить Website Key для автоматической декодировки на сервере и завершения проверки.

Процесс подачи заявки

Чтобы использовать API распознавания протокола Recaptcha2, сначала перейдите в консоль Ace Data Cloud и получите ваш API Token для резервного копирования. Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправит на страницу входа, где вас пригласят зарегистрироваться и войти. После завершения вы автоматически вернетесь на текущую страницу. Один API Token позволяет использовать все услуги платформы, не нужно подавать отдельные заявки на каждую услугу. При первой подаче заявки предоставляется бесплатный лимит для тестирования; при недостаточном лимите вы можете пополнить общий баланс в консоли.
📘 Полная документация: API распознавания протокола Recaptcha2 →

Основное использование

Сначала ознакомьтесь с основным способом использования, который заключается в вводе URL сайта, на котором нужно обработать капчу, чтобы получить обработанный результат. Сначала необходимо просто передать поле website_url, наш пример сайта: https://www.google.com/recaptcha/api2/demo, нам нужно получить website_key на странице website_url, для этого откройте эту веб-страницу, нажмите F12 для входа в консоль, и затем выполните глобальный поиск по элементам на странице recaptcha-demo, мы можем получить следующий результат:

Где строка, соответствующая data-sitekey, является значением website_key, ниже приведены конкретные параметры результата:

Как видно, здесь мы установили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ для вызова API, после подачи заявки его можно выбрать из выпадающего списка.
Также установлен Body запроса, включая:
  • website_url: URL сайта, на котором нужно обработать капчу.
  • website_key: идентификатор сайта в Recaptcha2.
  • proxy: необязательный, собственный прокси (Bring Your Own Proxy). После установки сервис будет использовать предоставленный вами IP-адрес прокси для декодирования капчи, чтобы контролировать качество исходящего IP (например, избежать блокировки целевым сайтом из-за использования общих прокси IP, что может привести к возврату 410 Gone). Формат: scheme://[user:pass@]host:port, scheme поддерживает http/https/socks4/socks5, например http://user:pass@1.2.3.4:8080. Если не заполнено, будет использоваться прокси по умолчанию от платформы.
После выбора вы также можете заметить, что справа сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Попробовать», чтобы провести тестирование, как показано на изображении выше, и мы получили следующий результат:
Результат содержит несколько полей, описание которых следующее:
  • token — результат проверки после обработки задачи Recaptcha2.
  • started_at, finished_at — время начала обработки запроса и получения результата, Unix временная метка (секунды, с плавающей точкой).
  • elapsed — общее время обработки (в секундах).
Как видно, мы получили результат проверки Recaptcha2, который затем можно использовать для POST-запроса или имитации отправки на целевой сайт, одноразового использования, срок действия 120 секунд, рекомендуется использовать в течение 60 секунд. Далее будет предоставлен фрагмент на Python, который отправляет обработанный токен на целевой сайт для прохождения проверки Recaptcha2. Сначала нам нужно выяснить, как сайт отправляет POST-запрос, чтобы мы могли передать сгенерированный токен. Для этого нам нужно открыть консоль F12, затем вручную пройти проверку, и в конце мы увидим, что сайт отправил POST-запрос. Нам нужно только посмотреть, как был построен этот POST-запрос, конкретный процесс следующий:
  • Сначала вручную пройти проверку, конкретно как на изображении ниже:

  • Затем нажать на submit, наблюдая за изменениями в сети консоли, конкретно как на изображении ниже:

  • Проанализируйте структуру POST-запроса, отправленного в этом примере, в конце вы можете щелкнуть правой кнопкой мыши на этом запросе и скопировать код CURL, как показано на следующем изображении:

Из приведенного выше анализа видно, что URL этого POST-запроса: https://www.google.com/recaptcha/api2/demo, нам нужно только отправить параметр g-recaptcha-response, затем мы просто передаем обработанный токен в данные ниже, конкретный код CURL для вызова токена для проверки выглядит следующим образом:
Код Python для вызова проверки токена выглядит следующим образом:
Затем мы запускаем код и наблюдаем, что консоль выдает такой результат:

В конце концов, мы прошли проверку протокола Recaptcha2. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код CURL выглядит следующим образом:
Код интеграции на Python выглядит следующим образом:

Асинхронный режим (async)

По умолчанию API является синхронным и блокирующим: один запрос будет ждать, пока обработка токена не завершится, прежде чем вернуться. Если вы делаете многократную ротацию кодов (multi-solver rotation) и хотите «сразу получить task_id после отправки задачи, сначала задействовать другие кодеры, а затем вернуться за результатом», вы можете передать async: true в теле запроса. После передачи async: true интерфейс немедленно вернет task_id, не блокируя ожидание:
Если вы хотите активно отслеживать прогресс, вы можете использовать этот task_id для запроса POST /captcha/tasks (рекомендуется каждые 3-5 секунд). Этот интерфейс не будет инициировать или продвигать обработку задачи; даже если не запрашивать, отключить интернет или выйти из клиента, сервер продолжит обработку:
В процессе обработки будет возвращен status: processing:
По завершении обработки будет возвращен status: ready и токен:
Условия оплаты: в асинхронном режиме создание задачи и чтение статуса «в процессе» не подлежат оплате; клиент оплачивает один раз при первом успешном чтении результата (что соответствует существующему поведению и цене синхронного режима). Сервер будет самостоятельно продвигать задачу, но не будет взимать плату заранее, если задача завершится в фоновом режиме. Если задача не будет успешно завершена в течение 120 секунд, она будет завершена с HTTP 504 timeout, без оплаты. /captcha/tasks не отвечает за продвижение задач.

Обработка ошибок

При вызове API, если возникает ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствия или недействительных параметров.
  • 401 invalid_token: Неавторизован, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

Заключение

С помощью этого документа вы узнали, как использовать API для распознавания протокола Recaptcha2, позволяя пользователям не распознавать и не нажимать на изображения капчи Recaptcha2, а просто отправляя Website Key для автоматической декодировки на сервере и завершения проверки. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.