Эта статья была полезной?
Как обойти rotate капчу
Строю backend, IT-инфраструктуру и automation-сервисы для масштабируемых SaaS-продуктов.
Введение
Если вы автоматизируете работу с сайтами, где встречается поворотная капча (Rotate CAPTCHA), и вам нужно точно определять угол поворота изображения, это руководство для вас.
Сервис 2Captcha позволяет решать Rotate CAPTCHA через API с помощью задачи типа RotateTask. Это критично для сайтов, которые требуют повернуть объект в правильное положение перед продолжением работы.
Статья описывает процесс отправки запросов напрямую через JSON API.
Общие сведения
Rotate CAPTCHA — это тип капчи, где пользователю предлагается повернуть изображение (иконку, объект, фотографию) в правильное положение. В отличие от текстовых капч, здесь ответом является числовое значение угла поворота.
Основная проблема при автоматизации: без точного указания шага поворота или подсказки исполнитель может выбрать неверный угол. Если целевой сайт требует точного позиционирования, решение будет отклонено.
Решение: явно указать параметр angle и добавить понятный comment в задаче типа RotateTask. Это помогает работникам 2Captcha быстрее и точнее определить нужный угол.
Подготовка окружения
Перед началом работы убедитесь, что у вас есть:
- Доступ к терминалу с поддержкой curl или HTTP-клиентом (Postman, HTTPie)
- API-ключ из личного кабинета 2Captcha
- Изображение капчи в формате JPG, PNG или GIF (макс. 600 КБ)
- Инструмент для кодирования в Base64 (онлайн-конвертер или команда
base64)
Пример кодирования изображения в Base64 через терминал:
bash
base64 -w 0 captcha.png > captcha_b64.txt
Проверьте, что полученная строка не содержит переносов строк.
Анализ страницы
Для Rotate CAPЧА не требуется извлечение sitekey или анализ токенов. Достаточно:
- Найти запрос, который загружает изображение капчи (вкладка Network в DevTools)
- Сохранить изображение локально или извлечь Base64-строку напрямую
- Определить шаг поворота: посчитайте количество доступных позиций (например, 6 позиций = шаг 60°)
- Подготовить параметры задачи с учётом
angleиcomment
Если шаг поворота неизвестен, можно опустить параметр angle, но точность решения может снизиться.
Реализация
Отправка задачи
Задача отправляется POST-запросом на эндпоинт createTask:
https://api.2captcha.com/createTask
Headers:
Content-Type: application/json
Тело запроса:
json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "RotateTask",
"body": "BASE64_ENCODED_IMAGE",
"angle": 60,
"comment": "Rotate the image to upright position"
},
"languagePool": "en"
}
Опрос статуса задачи
Используйте taskId из ответа для опроса статуса:
https://api.2captcha.com/getTaskResult
Тело запроса:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
Пример ответа при готовности:
json
{
"errorId": 0,
"status": "ready",
"solution": {
"rotate": 180
}
}
Значение solution.rotate содержит угол в градусах, на который нужно повернуть изображение.
Пояснения к параметрам
Параметры задачи RotateTask
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
type |
String | Да | Всегда RotateTask |
body |
String | Да | Изображение в Base64 или Data-URI |
angle |
Integer | Нет | Шаг поворота в градусах (например, 60 для 6 позиций) |
comment |
String | Нет | Подсказка для исполнителя на английском или языке пула |
languagePool |
String | Нет | Предпочтительный язык исполнителя (en, ru, es и др.) |
Параметры ответа
| Поле | Тип | Описание |
|---|---|---|
errorId |
Integer | 0 — успех, другое значение — код ошибки |
status |
String | processing — задача в очереди, ready — решение готово |
solution.rotate |
Integer | Угол поворота в градусах (0–359) |
Обратная связь по результатам решения
После получения ответа от 2Captcha и проверки его на целевом сайте рекомендуется отправить обратную связь. Это помогает улучшать качество распознавания и в некоторых случаях возвращать средства за ошибочные решения.
Если сайт отклонил решение (неправильный угол)
Отправьте POST-запрос на эндпоинт reportIncorrect:
Эндпоинт: https://api.2captcha.com/reportIncorrect
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
Пример ответа:
json
{
"errorId": 0,
"status": "success"
}
Важно: не используйте этот метод, если ваш процент успеха близок к 0%. Это может указывать на ошибку в вашем коде, а не в решениях капчи.
Если сайт принял решение (правильный угол)
Отправьте POST-запрос на эндпоинт reportCorrect:
Эндпоинт: https://api.2captcha.com/reportCorrect
Метод: POST
Content-Type: application/json
Пример запроса:
json
{
"clientKey": "YOUR_API_KEY",
"taskId": 74455221488
}
Пример ответа:
json
{
"errorId": 0,
"status": "success"
}
Политика возвратов
- Каждый случай рассматривается индивидуально
- Для стандартных капч проверяется корректность ответа
- Для капч с токеном анализируется статистика исполнителя
- Возврат средств не гарантируется по каждой жалобе
- Итоговая сумма возвратов может отличаться от количества обращений
Отправляйте отчёты честно и только после реальной проверки на целевом сайте.
Использование комментария для сложных случаев
Если капча имеет нестандартный формат или требует особого поворота, добавьте подсказку в параметр comment.
Комментарий отобразится у исполнителя и повысит точность распознавания.
Интеграция с браузерной автоматизацией
Полученный угол solution.rotate можно применить через Selenium, Playwright или Puppeteer:
- Найдите элемент управления поворотом на странице
- Вычислите необходимое количество кликов или угол для CSS-трансформации
- Примените поворот программно перед отправкой формы
Типичные ошибки
| Ошибка | Причина | Решение |
|---|---|---|
ERROR_WRONG_USER_KEY |
Неверный clientKey |
Проверьте API-ключ в личном кабинете 2Captcha |
ERROR_ZERO_BALANCE |
Недостаточно средств на балансе | Пополните баланс перед отправкой задач |
ERROR_CAPTCHA_UNSOLVABLE |
Изображение нечёткое или задача неоднозначная | Улучшите качество изображения, добавьте comment |
ERROR_ZERO_CAPTCHA_FILESIZE |
Размер файла менее 100 байт | Проверьте, что изображение корректно закодировано в Base64 |
ERROR_NO_SLOT_AVAILABLE |
Очередь переполнена или ставка слишком низкая | Увеличьте ставку в настройках или добавьте задержку между запросами |
| Неправильный угол в ответе | Не указан angle или подсказка неточная |
Добавьте параметр angle и уточните comment |
Дополнительные ресурсы
- Документация по Rotate CAPTCHA API
- Метод reportIncorrect — отчёт о неверном решении
- Метод reportCorrect — отчёт о верном решении
- Примеры запросов на GitHub
- Обратиться в поддержку
Контрольный список
- Изображение капчи закодировано в Base64 и не превышает 600 КБ
- В задачу добавлен параметр
angle, если известен шаг поворота - Параметр
commentсодержит понятную инструкцию на английском или целевом языке - Ответ валидируется перед применением (
errorId,status,solution.rotate) - Протестировано применение угла на целевом сайте
- Реализована отправка отчётов
reportIncorrect/reportCorrect - При необходимости настроено логирование для отладки
Заключение
Точное определение угла поворота в Rotate CAPTCHA — частая причина ошибок при автоматизации. Параметры angle и comment в задаче RotateTask API 2Captcha позволяют явно указать логику капчи и повысить точность решения.
Используйте прямые JSON-запросы для гибкой интеграции, не забывайте про обработку ошибок и таймауты, и ваши скрипты будут стабильно проходить капчи даже на строгих сайтах.
Не забывайте отправлять обратную связь через reportIncorrect и reportCorrect — это помогает улучшать качество сервиса и возвращать средства за ошибочные решения.
Обходите любую поворотную капчу с помощью решения капчи через API.