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

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

Как обойти rotate капчу

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

Введение

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

Что вы получите:

  • Понимание работы Rotate CAPTCHA и её отличий от других типов
  • Пошаговый алгоритм отправки задачи и получения ответа
  • Готовую структуру кода с местами для вашей бизнес-логики
  • Информацию об отладке, обработке ошибок и системе отчетности

Необходимые инструменты:

  • Python 3.8 или выше
  • Библиотеки: requests, aiohttp (для асинхронных примеров)
  • API-ключ от 2Captcha
  • Изображение капчи в формате Base64

1. Общие сведения о Rotate CAPTCHA

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

Rotate CAPTCHA предлагает пользователю повернуть изображение (часто объект или иконку) в правильное положение. В отличие от текстовых или слайдер-капч, здесь требуется определить угол поворота, кратный определённому шагу (например, 45° или 60°).

1.2. Параметры задачи

Параметр Обязательный Описание
type Да Всегда RotateTask
body Да Изображение капчи в Base64
angle Нет Шаг поворота в градусах (например, 60 для 6 позиций)
comment Нет Подсказка для исполнителя, уточняющая задачу

1.3. Ограничения и важные замечания

  • Максимальный размер изображения: 600 КБ
  • Время решения: обычно 5–15 секунд, но может увеличиваться при высокой нагрузке
  • Точность зависит от качества изображения и чёткости инструкции в comment

2. Подготовка окружения

2.1. Установка зависимостей

bash Copy
pip3 install requests
pip3 install aiohttp  # для асинхронных примеров

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

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

Рекомендуется хранить ключ в переменной окружения:

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

2.3. Подготовка изображения

Конвертируйте изображение капчи в Base64:

bash Copy
base64 image.jpg > image_base64.txt

Проверьте, что полученная строка не содержит переносов строк и укладывается в лимит 600 КБ.


3. Анализ страницы и извлечение капчи

3.1. Определение капчи на странице

Rotate CAPTCHA обычно отображается как интерактивный виджет с изображением и элементами управления поворотом.

3.2. Извлечение изображения

В зависимости от реализации сайта, изображение может быть:

  • Вставлено как <img src="data:image/jpeg;base64,...">
  • Загружено через отдельный HTTP-запрос
  • Сгенерировано динамически через Canvas

Используйте инструменты разработчика (вкладка Network) для поиска запроса, возвращающего изображение капчи.

3.3. Определение шага поворота

Проанализируйте поведение виджета:

  • Сколько позиций доступно для поворота?
  • Меняется ли шаг динамически?

Если капча имеет 6 позиций, шаг равен 60° (360 / 6). Укажите это в параметре angle для повышения точности.


4. Реализация: отправка задачи и получение ответа

4.1. Структура запроса

Задача отправляется POST-запросом на эндпоинт createTask:

Copy
https://api.2captcha.com/createTask

Тело запроса:

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RotateTask",
        "body": "BASE64_ENCODED_IMAGE",
        "angle": 60,
        "comment": "Поверните изображение в вертикальное положение"
    },
    "languagePool": "ru"
}

4.2. Рабочий пример на Python с использованием SDK

Вместо ручного формирования запросов удобнее использовать официальный SDK. Он берёт на себя отправку задачи, опрос статуса и обработку ответов.

Пример ниже показывает, как решить Rotate CAPTCHA асинхронно:

python Copy
import asyncio
import os
import sys

sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))))

from twocaptcha import AsyncTwoCaptcha

# API-ключ лучше хранить в переменной окружения
# Linux/macOS: export APIKEY_2CAPTCHA=ваш_ключ
# Windows: set APIKEY_2CAPTCHA=ваш_ключ
api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')

# Инициализация решателя с таймаутом и интервалом опроса
solver = AsyncTwoCaptcha(api_key, defaultTimeout=100, pollingInterval=10)


async def solve_captcha():
    try:
        return await solver.rotate(
            '../images/rotate.jpg',
            angle=40,
            lang='en',
            # hintImg  = '../images/rotate_hint.jpg'
            hintText='Put the images in the correct way up')
    except Exception as e:
        sys.exit(e)


if __name__ == '__main__':
    result = asyncio.run(solve_captcha())
    sys.exit('result: ' + str(result))

Что делает этот код:

  • Берёт ключ из переменной окружения, чтобы не хранить его в коде
  • Создаёт асинхронный экземпляр решателя с настройками таймаута
  • Отправляет изображение капчи с подсказкой и шагом поворота
  • Ждёт результат и выводит его в консоль

Как запустить:

  1. Установите библиотеку: pip3 install 2captcha-python
  2. Задайте API-ключ: export APIKEY_2CAPTCHA=ваш_ключ
  3. Положите тестовое изображение в ../images/rotate.jpg
  4. Запустите скрипт: python3 rotate_example.py

Совет: Начните с параметра hintText на родном языке исполнителя. Фраза вроде «Поверните картинку, чтобы она стояла ровно» повышает точность решения.

Если вы предпочитаете синхронный код, используйте класс TwoCaptcha без async/await. Логика та же, только вызовы блокирующие.

Полный пример с комментариями доступен в репозитории:
async_rotate_options.py на GitHub


5. Пояснения к ключевым моментам

5.1. Почему важен параметр angle

Указание шага поворота помогает исполнителю быстрее понять логику капчи и снижает риск ошибки. Если шаг неизвестен, можно опустить параметр.

5.2. Обработка задержек

Ответ status: "processing" означает, что задача в очереди. Рекомендуется:

  • Опрос каждые 3–5 секунд
  • Установить максимальный таймаут (например, 60 секунд)
  • Логировать время ожидания для анализа

5.3. Валидация ответа

Перед применением решения проверьте:

  • Значение errorId равно 0
  • Статус ready
  • Поле solution.rotate содержит число

5.4. Применение результата

В ответе вы получаете значение угла, на который надо повернуть изображение. Стандартным использованием является браузер с автоматическим управлением (Selenium, Playwright, Puppeteer)


6. Альтернативные подходы

6.1. Синхронный и асинхронный запросы

Для простых скриптов подойдёт синхронный requests. Для высоконагруженных систем рассмотрите aiohttp с асинхронным опросом.

6.2. Использование SDK

Официальный Python-клиент упрощает интеграцию:

bash Copy
pip3 install 2captcha-python

Документация: 2captcha-python на GitHub

6.3. Обработка нескольких капч подряд

При массовом решении добавьте:

  • Задержки между запросами
  • Повторную отправку при ошибке ERROR_CAPTCHA_UNSOLVABLE

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

Ошибка Возможная причина Решение
ERROR_WRONG_USER_KEY Неверный API-ключ Проверьте ключ в панели управления 2Captcha
ERROR_ZERO_BALANCE Недостаточно средств Пополните баланс аккаунта
ERROR_CAPTCHA_UNSOLVABLE Изображение нечёткое или задача неоднозначная Улучшите качество изображения, добавьте comment
ERROR_ZERO_CAPTCHA_FILESIZE Размер изображения составляет менее 100 байт Попробуйте заново извлечь файл с изображением
ERROR_NO_SLOT_AVAILABLE Ваша ставка слишком мала для отправленной вами капчи, или очередь ваших капч слишком длинная, и мы временно не принимаем от вас больше капч Увеличьте ставку в настройках и создайте таймаут между запросами в 5–10 секунд

7.1. Система отчетности

Если решение оказалось неверным, вы можете отправить отчет через API 2Captcha:

  • Неверный ответ:
    https://api.2captcha.com/reportIncorrect
    Параметры: key, taskId
    При подтверждении ошибки средства возвращаются согласно политике возвратов.

  • Верный ответ:
    https://api.2captcha.com/reportCorrect
    Параметры: key, taskId
    Помогает улучшить качество работы исполнителей.

Важно: Отправляйте отчеты только после проверки решения в контексте вашей задачи.


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


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

  • Изображение капчи закодировано в Base64 и не превышает 600 КБ
  • Параметр angle указан, если известен шаг поворота
  • В comment добавлена понятная инструкция для работника
  • Ответ валидируется перед применением (errorId, status, solution.rotate)
  • Интеграция с браузером (Selenium / Puppeteer) протестирована вручную
  • Настроена логирование для отладки и анализа ошибок
  • При необходимости подключена система отчетности 2Captcha

Заключение

Rotate CAPTCHA требует точной передачи изображения и понимания логики поворота. Интеграция с 2Captcha позволяет автоматизировать решение таких задач, но успех зависит от качества подготовки данных и корректной обработки ответа.

Начните с тестов в режиме headless=False, чтобы визуально контролировать процесс. Добавляйте подробные комментарии в задачи и используйте систему отчетности для улучшения результатов.