Эта статья была полезной?
Как обойти Amazon CAPTCHA
Технический специалист

Введение
Это руководство поможет разработчикам автоматизировать взаимодействие с сайтами, защищенными Amazon CAPTCHA (AWS WAF CAPTCHA). Мы разберем два метода решения, извлечение необходимых параметров и практическую интеграцию с 2Captcha через отправку JSON-запросов.
Что понадобится:
- Аккаунт на 2Captcha
- API-ключ из личного кабинета
- Любой инструмент для отправки HTTP-запросов (curl, Postman, библиотека requests)
- Прокси (рекомендуется для стабильности)
Общие сведения об Amazon CAPTCHA
Описание технологии
Amazon CAPTCHA (AWS WAF) — это система защиты, которая предлагает пользователю выполнить одну из трех задач:
- Выбор изображений. Нужно отметить все картинки с определенным объектом.
- Определение траектории. Пользователь указывает, где окажется объект в конце пути.
- Аудиозадача. Требуется распознать и ввести текст из аудио с фоновым шумом.

Два метода решения
2Captcha поддерживает два подхода к решению Amazon CAPTCHA:
| Параметр | challenge_script версия | jsapiScript версия |
|---|---|---|
| Скрипт капчи | challengeScript + captchaScript |
jsapiScript |
| Дополнительные параметры | iv, context |
Не требуются |
| Сложность настройки | Выше | Ниже |
| Рекомендация | Для обратной совместимости | Предпочтительный метод |
Типы задач
- AmazonTaskProxyless. 2Captcha использует собственный пул прокси. Подходит, если у вас нет своих прокси.
- AmazonTask. Вы передаете свои прокси-серверы. Дает больше контроля и гибкости.
Аудиозадачи можно решать через метод распознавания аудио, но мы рекомендуем использовать специализированный метод Amazon. Он быстрее и надежнее.
Подготовка к работе
Получение API-ключа
- Зарегистрируйтесь на 2Captcha
- Откройте личной кабинет
- Скопируйте API-ключ
Для безопасности храните ключ в переменной окружения и подставляйте в запросы:
bash
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.

Определение версии капчи
Проверьте, какие скрипты подключены на странице:
- Если видите
challenge.jsиcaptchaScript— используйте challenge_script метод - Если видите
jsapi.js— используйте jsapiScript метод
Важные особенности
- Параметры обновляются. Значения
ivиcontextдействуют ограниченное время (около 30 секунд). Получайте их заново для каждого запроса. - websiteKey может быть постоянным для одного домена, но лучше проверять его актуальность.
- jsapiScript упрощает интеграцию. Не нужно извлекать
ivиcontext, достаточно передать URL скрипта.
Формирование JSON-запросов
Пример для challenge_script версии
json
{
"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
{
"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
{
"errorId": 0,
"taskId": 74455221488,
"status": "processing"
}
Сохраните значение taskId — оно понадобится для получения результата.
Шаг 2. Опрос статуса задачи
Отправьте POST-запрос на https://api.2captcha.com/getTaskResult:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
Пример ответа в процессе решения:
json
{
"errorId": 0,
"status": "processing"
}
Пример ответа с готовым решением:
json
{
"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 нужно передать на сайт, где появилась капча. Способ зависит от реализации:
- Скрытое поле формы. Токен добавляется в
<input type="hidden" name="captcha_token"> - HTTP-заголовок. Например,
X-Amz-Captcha-Token: <значение> - Cookie. Сервер может ожидать токен в куках сессии
- JSON-тело запроса. При отправке данных через fetch или axios
Для определения правильного способа:
- Откройте DevTools, вкладку Network
- Решите капчу вручную
- Найдите запрос, который отправляется после успешного решения
- Изучите параметры, заголовки и тело запроса
Дополнительные ресурсы
- Документация API: Amazon AWS WAF CAPTCHA
- Песочница для тестов: включить режим
- Примеры запросов на GitHub:
- Поддержка: создать тикет
Контрольный список перед запуском
- Аккаунт на 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, и применяйте полученные токены согласно логике целевого сайта. При соблюдении рекомендаций из этого руководства вы сможете стабильно обходить капчу и масштабировать свои решения.