Логотип «2Captcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как обойти Amazon CAPTCHA

Мэттью Моди
Мэттью Моди

Технический специалист

Как распознать, решить и обойти Amazon капчу с помощью API

Введение

Это руководство поможет разработчикам автоматизировать взаимодействие с сайтами, защищенными Amazon CAPTCHA (AWS WAF CAPTCHA). Мы разберем два метода решения, извлечение необходимых параметров и практическую интеграцию с 2Captcha через отправку JSON-запросов.

Что понадобится:

  • Аккаунт на 2Captcha
  • API-ключ из личного кабинета
  • Любой инструмент для отправки HTTP-запросов (curl, Postman, библиотека requests)
  • Прокси (рекомендуется для стабильности)

Общие сведения об Amazon CAPTCHA

Описание технологии

Amazon CAPTCHA (AWS WAF) — это система защиты, которая предлагает пользователю выполнить одну из трех задач:

  1. Выбор изображений. Нужно отметить все картинки с определенным объектом.
  2. Определение траектории. Пользователь указывает, где окажется объект в конце пути.
  3. Аудиозадача. Требуется распознать и ввести текст из аудио с фоновым шумом.

Два метода решения

2Captcha поддерживает два подхода к решению Amazon CAPTCHA:

Параметр challenge_script версия jsapiScript версия
Скрипт капчи challengeScript + captchaScript jsapiScript
Дополнительные параметры iv, context Не требуются
Сложность настройки Выше Ниже
Рекомендация Для обратной совместимости Предпочтительный метод

Типы задач

  • AmazonTaskProxyless. 2Captcha использует собственный пул прокси. Подходит, если у вас нет своих прокси.
  • AmazonTask. Вы передаете свои прокси-серверы. Дает больше контроля и гибкости.

Аудиозадачи можно решать через метод распознавания аудио, но мы рекомендуем использовать специализированный метод Amazon. Он быстрее и надежнее.


Подготовка к работе

Получение API-ключа

  1. Зарегистрируйтесь на 2Captcha
  2. Откройте личной кабинет
  3. Скопируйте API-ключ

Для безопасности храните ключ в переменной окружения и подставляйте в запросы:

bash Copy
export APIKEY="ваш_ключ_здесь"

Базовая структура запроса

Все запросы к API 2Captcha отправляются методом POST с заголовком Content-Type: application/json.

Базовый эндпоинт: https://api.2captcha.com/createTask

Анализ страницы и извлечение параметров

Поиск параметров капчи

Цель: найти websiteKey, iv, context или jsapiScript в коде страницы.

Откройте инструменты разработчика (F12) и перейдите на вкладку Elements. Найдите блок капчи или выполните поиск по ключевым словам: aws-waf-captcha, challenge.js, jsapi.js.

Пример найденных параметров CAPTCHA

Определение версии капчи

Проверьте, какие скрипты подключены на странице:

  • Если видите challenge.js и captchaScript — используйте challenge_script метод
  • Если видите jsapi.js — используйте jsapiScript метод

Важные особенности

  1. Параметры обновляются. Значения iv и context действуют ограниченное время (около 30 секунд). Получайте их заново для каждого запроса.
  2. websiteKey может быть постоянным для одного домена, но лучше проверять его актуальность.
  3. jsapiScript упрощает интеграцию. Не нужно извлекать iv и context, достаточно передать URL скрипта.

Формирование JSON-запросов

Пример для challenge_script версии

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AmazonTaskProxyless",
        "websiteURL": "https://example.com",
        "challengeScript": "https://.../challenge.js",
        "captchaScript": "https://.../captcha.js",
        "websiteKey": "AQIDA...==",
        "context": "qoJYg...Y=",
        "iv": "CgAAXFFFFSAAABVk"
    }
}

Пример для jsapiScript версии

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "AmazonTaskProxyless",
        "websiteURL": "https://example.com",
        "jsapiScript": "https://.../jsapi.js",
        "websiteKey": "AQIDA...=="
    }
}

Отправка запроса и получение результата

Шаг 1. Создание задачи

Отправьте POST-запрос на https://api.2captcha.com/createTask с телом из предыдущего раздела.

Пример успешного ответа:

json Copy
{
    "errorId": 0,
    "taskId": 74455221488,
    "status": "processing"
}

Сохраните значение taskId — оно понадобится для получения результата.

Шаг 2. Опрос статуса задачи

Отправьте POST-запрос на https://api.2captcha.com/getTaskResult:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "taskId": 74455221488
}

Пример ответа в процессе решения:

json Copy
{
    "errorId": 0,
    "status": "processing"
}

Пример ответа с готовым решением:

json Copy
{
    "errorId": 0,
    "status": "ready",
    "solution": {
        "captcha_voucher": "voucher_value_here",
        "existing_token": "token_value_here"
    }
}

Шаг 3. Обработка статусов

Статус Значение Действие
processing Задача в работе Повторите запрос через 5-10 секунд
ready Решение готово Извлеките captcha_voucher и existing_token
ERROR_CAPTCHA_UNSOLVABLE Капча не решается Получите свежие параметры и повторите
ERROR_WRONG_USER_KEY Неверный API-ключ Проверьте ключ в личном кабинете


Типичные ошибки и решения

Ошибка Возможная причина Решение
ERROR_CAPTCHA_UNSOLVABLE Устаревшие iv/context Получайте свежие параметры для каждого запроса
ERROR_WRONG_USER_KEY Неверный API-ключ Проверьте ключ в личном кабинете 2Captcha
Задача долго в processing Высокая нагрузка или медленный прокси Увеличьте интервал опроса до 10 секунд
Токен не принимается сайтом Неправильное применение решения Проверьте, куда сайт ожидает токен: форма, заголовок или куки
Ошибка прокси Неверные данные прокси Проверьте формат: proxyAddress, proxyPort, proxyLogin, proxyPassword

Применение токена на целевом сайте

Полученные captcha_voucher и existing_token нужно передать на сайт, где появилась капча. Способ зависит от реализации:

  1. Скрытое поле формы. Токен добавляется в <input type="hidden" name="captcha_token">
  2. HTTP-заголовок. Например, X-Amz-Captcha-Token: <значение>
  3. Cookie. Сервер может ожидать токен в куках сессии
  4. JSON-тело запроса. При отправке данных через fetch или axios

Для определения правильного способа:

  • Откройте DevTools, вкладку Network
  • Решите капчу вручную
  • Найдите запрос, который отправляется после успешного решения
  • Изучите параметры, заголовки и тело запроса

Дополнительные ресурсы


Контрольный список перед запуском

  • Аккаунт на 2Captcha активен, API-ключ скопирован
  • Определена версия капчи: challenge_script или jsapiScript
  • Параметры (websiteKey, iv, context или jsapiScript) извлечены из актуальной страницы
  • Выбран тип задачи: AmazonTaskProxyless или AmazonTask
  • При использовании своих прокси проверены: proxyType, proxyAddress, proxyPort
  • Реализована логика применения токена на целевом сайте

Заключение

Решение Amazon CAPTCHA через 2Captcha упрощает автоматизацию задач на защищенных сайтах. Новый параметр jsapiScript делает интеграцию проще: не нужно извлекать iv и context, достаточно передать URL скрипта.

Выбирайте метод под вашу задачу:

  • jsapiScript — если сайт использует новую версию, меньше параметров, проще настройка
  • challenge_script — для обратной совместимости со старыми реализациями

Отправляйте запросы в формате JSON, обрабатывайте статусы processing и ready, и применяйте полученные токены согласно логике целевого сайта. При соблюдении рекомендаций из этого руководства вы сможете стабильно обходить капчу и масштабировать свои решения.