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

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

Как обойти капчу с помощью Python

Мэттью Моди

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

Введение

Нужно добавить решение капч в ваш Python-скрипт? Официальная библиотека 2captcha-python — это самый быстрый и надёжный способ интегрировать API 2Captcha без ручного написания HTTP-запросов.

В этом руководстве расскажем, почему стоит выбрать именно этот модуль, как его подключить за минуту и какие возможности он открывает для автоматизации любых задач.

Общие сведения

2captcha-python — это официальный Python-клиент для API 2Captcha. Библиотека предоставляет простой объектно-ориентированный интерфейс для отправки задач на распознавание и получения результатов.

Почему этот модуль стоит использовать

  • Единый интерфейс для всех типов капч — не нужно запоминать разные эндпоинты и параметры, библиотека абстрагирует всю сложность
  • Полная поддержка async/await — асинхронные вызовы без блокировок, идеально для высоконагруженных скриптов
  • Гибкая конфигурация — настраивайте таймауты, интервалы опроса, callback-уведомления под ваш сценарий
  • Встроенная обработка ошибок — понятные исключения вместо сырых ответов сервера
  • Поддержка прокси из коробки — передавайте прокси прямо в объекте капчи
  • Актуальная поддержка — библиотека развивается вместе с API, все новые типы капч добавляются оперативно

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

Минимальные требования:

  • Python 3.6 или выше
  • API-ключ из личного кабинета 2Captcha

Установка в одну команду через pip:

bash Copy
pip install 2captcha-python

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

python Copy
from twocaptcha import TwoCaptcha

Для асинхронного режима:

python Copy
from twocaptcha import AsyncTwoCaptcha

Как устроен модуль

Основной класс: TwoCaptcha

Все взаимодействия с сервисом идут через экземпляр класса TwoCaptcha:

python Copy
solver = TwoCaptcha('YOUR_API_KEY')

Гибкая настройка поведения

Вы можете настроить клиент под свои нужды через словарь конфигурации:

python Copy
config = {
    'server':           '2captcha.com',
    'apiKey':           'YOUR_API_KEY',
    'softId':           123,
    'callback':         'https://your.site/result-receiver',
    'defaultTimeout':   120,
    'recaptchaTimeout': 600,
    'pollingInterval':  10,
    'extendedResponse': True
}
solver = TwoCaptcha(**config)

Параметры настройки

Опция По умолчанию Описание
server 2captcha.com Адрес API-сервера. Укажите 2captcha.com, если аккаунт зарегистрирован там
softId 4580 ID вашего ПО из каталога 2Captcha для статистики
callback None URL вашего сервера для получения результата в фоновом режиме
defaultTimeout 120 Таймаут опроса для всех капч, кроме reCAPTCHA
recaptchaTimeout 600 Отдельный таймаут для reCAPTCHA
pollingInterval 10 Интервал между запросами к API, не рекомендуется ставить меньше 5
extendedResponse False Возвращать ответ в расширенном формате с дополнительными полями

Важно: если задан callback, методы возвращают только ID задачи и не опрашивают API. Результат придёт отдельным POST-запросом на указанный URL.

Базовый паттерн использования

Независимо от типа капчи, рабочий процесс выглядит одинаково:

python Copy
import os
from twocaptcha import TwoCaptcha

api_key = os.getenv('APIKEY_2CAPTCHA')
solver = TwoCaptcha(api_key)

# 1. Создаём задачу нужного типа
# 2. Настраиваем параметры
# 3. Отправляем и получаем результат

try:
    result = solver.имя_метода(параметры)
    print('Решение: ' + result['code'])
except Exception as e:
    print('Ошибка: ' + str(e))

Этот шаблон работает для любого типа капчи — меняется только название метода и набор параметров.

Поддерживаемые типы капч

Модуль покрывает все популярные форматы:

  • Текстовые: Normal, Text, Audio
  • Google: reCAPTCHA v2, reCAPTCHA v3, Invisible reCAPTCHA
  • Cloudflare: Turnstile, Challenge
  • Другие провайдеры: GeeTest, FunCaptcha, KeyCaptcha, Capy, Lemin, MTCaptcha, DataDome, Amazon WAF, Tencent, VK Captcha и многие другие

Полный список с примерами параметров — в документации по типам капч.

Продвинутые возможности

Асинхронный режим

Библиотека полностью поддерживает async/await для неблокирующей работы:

python Copy
import asyncio
from twocaptcha import AsyncTwoCaptcha

async def solve():
    solver = AsyncTwoCaptcha('YOUR_API_KEY')
    result = await solver.normal('captcha.jpg')
    print('Code:', result['code'])

asyncio.run(solve())

Подробнее с примерами: асинхронные примеры на GitHub

Режим Callback

Если вы не хотите ждать результат в коде, настройте Callback:

python Copy
solver = TwoCaptcha('YOUR_API_KEY', callback='https://your.site/webhook')
result = solver.normal('captcha.jpg')
# result содержит только ID задачи, результат придёт на ваш сервер

Ручное управление потоком

Для сложных сценариев доступен низкоуровневый контроль:

python Copy
task_id = solver.send({'method': 'post', 'body': '...'})
# ... ваша логика ...
result = solver.get_result(task_id)

Работа с прокси

Многие капчи требуют запрос с определённого IP. Передавайте прокси прямо в методе:

python Copy
result = solver.recaptcha(
    sitekey='6Le-wvkS...',
    pageurl='https://example.com',
    proxy='login:pass@123.123.123.123:8000',
    proxy_type='HTTPS'
)

Дополнительные параметры капчи

Для текстовых и некоторых других типов можно уточнить ожидания:

python Copy
result = solver.normal(
    'captcha.jpg',
    numeric=0,
    minLen=4,
    maxLen=20,
    phrase=0,
    caseSensitive=1,
    lang='en',
    hintText='Enter only uppercase letters'
)

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

Библиотека выбрасывает исключения с понятными сообщениями. Всегда используйте try-except:

python Copy
try:
    result = solver.normal('captcha.jpg')
except Exception as e:
    # Логируйте ошибку и принимайте решение: повтор, уведомление, фолбэк
    print(f'Failed: {e}')

Частые коды ошибок

Код Что означает Как исправить
ERROR_WRONG_USER_KEY Неверный API-ключ Проверьте ключ в личном кабинете 2Captcha
ERROR_ZERO_BALANCE Нет средств на балансе Пополните счёт или включите автопополнение
ERROR_NO_SLOT_AVAILABLE Очередь переполнена Повторите запрос позже или увеличьте ставку
ERROR_BAD_PARAMETERS Не хватает обязательных полей Сверьтесь с документацией по типу капчи
ERROR_PROXY_CONNECT_REFUSED Не удалось подключиться через прокси Проверьте формат и доступность прокси
ERROR_CAPTCHA_UNSOLVABLE Капча не распознана Средства возвращаются автоматически

Советы по интеграции

  • Храните ключи безопасно — используйте os.getenv() или библиотеки вроде python-dotenv, не хардкодьте API-ключ
  • Настраивайте таймауты под задачу — сложные капчи могут решаться дольше, не ставьте слишком короткие лимиты
  • Добавляйте логирование — сохраняйте ID задач и время ответа для отладки и аудита
  • Тестируйте в песочнице — перед запуском в продакшен проверьте интеграцию на тестовом окружении
  • Следите за балансом — настройте уведомления о низком балансе, чтобы избежать простоев

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

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

  • Библиотека установлена через pip
  • API-ключ получен и сохранён в переменной окружения
  • Выбран правильный метод и настроены обязательные параметры
  • Настроены таймауты и интервал опроса под вашу нагрузку
  • Реализована обработка исключений и базовое логирование
  • Протестировано решение с реальными параметрами целевого сайта
  • При необходимости настроен Callback или прокси

Заключение

Модуль 2captcha-python — это надёжный и удобный способ добавить решение капч в любой Python-проект. Он скрывает сложность API за простым интерфейсом, поддерживает асинхронность, гибко настраивается и покрывает все популярные типы капч.

Начните с базовой настройки клиента, выберите нужный метод и добавьте обработку ошибок — этого достаточно для стабильной работы. А когда задача вырастет, библиотека масштабируется вместе с вами: поддерживаются callback-уведомления, ручное управление потоком, прокси и расширенное логирование.

Документация, примеры кода и поддержка 2Captcha помогут быстро разобраться с любым сценарием.

Автоматизируйте обход капч эффективно и с минимальными усилиями — с 2captcha-python.