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

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

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

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

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

Нам нужно кликнуть по флажку кода, чтобы появилось изображение кода. В приведенном выше изображении текст, на который указывает желтая стрелка, является значением question, которое будет использоваться далее. Сначала необходимо передать простое поле image, которое представляет собой конкретное изображение кода Recaptcha2, это изображение указано красной стрелкой на изображении выше, и его необходимо масштабировать до стандартного размера (100x100, 300x300, 450x450), чтобы служба могла определить тип изображения. Сжатие изображения необходимо выполнить самостоятельно, в этой статье рекомендуется использовать сайт для сжатия, где вы можете изменить размеры и размер изображения, результат сжатия показан на изображении ниже: Также необходимо ввести параметры распознавания, связанные с изображением кода, question. Мы предоставили ниже таблицу содержимого, которая может служить справкой:

Таблица содержимого на китайском

Таблица содержимого на английском

Из вышеизложенного видно, что параметр question должен быть установлен на соответствующий пожарный гидрант /m/01pns0, конкретное содержимое показано ниже:

Мы видим, что здесь мы установили заголовки запроса, включая:
  • accept: формат ответа, который вы хотите получить, здесь указано application/json, то есть формат JSON.
  • authorization: ключ API для вызова, после запроса его можно выбрать из выпадающего списка.
Также установлен тело запроса, включая:
  • image: закодированное в Base64 изображение кода.
  • question: ID вопроса, пожалуйста, смотрите таблицу, начинается с /m/.
После выбора можно увидеть, что справа также сгенерирован соответствующий код, как показано на изображении:

Нажмите кнопку «Попробовать», чтобы провести тестирование, как показано на изображении, и мы получили следующий результат:
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • solution, результат проверки после обработки задачи с изображением кода Recaptcha2.
    • size, размер изображения кода Recaptcha2.
    • label, содержимое, распознанное на изображении кода Recaptcha2.
    • confidences, уровень уверенности в распознавании области изображения кода Recaptcha2, области начинаются с 0.
    • objects, области, соответствующие распознанному содержимому на изображении кода Recaptcha2, области начинаются с 0.
    • type, тип задачи с изображением кода Recaptcha2, если несколько областей, то multi.
Мы видим, что получили результат проверки изображения кода Recaptcha2, сначала мы разделяем области изображения кода, как показано на следующем изображении:

Области начинаются с 0, из результата objects мы получили 2, 5, 7, нам нужно просто симулировать клик по этим трем областям, чтобы пройти проверку. Кроме того, если вы хотите сгенерировать соответствующий код интеграции, вы можете просто скопировать его, например, код 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 и результат распознавания solution (структура полей полностью совпадает с синхронным режимом):
Условия оплаты: в асинхронном режиме создание задачи и опрос «в процессе обработки» не тарифицируются; только при успешном получении результата распознавания взимается плата один раз (по цене, аналогичной синхронному режиму). Поэтому отмена незавершенных задач в ротации не приведет к расходам. /captcha/tasks универсален для всех интерфейсов капчи (token и recognition серии), можно использовать один и тот же task_id для опроса.

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

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

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

Заключение

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