Эта статья была полезной?
Как обойти капчу с помощью Python
Технический специалист
Введение
Нужно добавить решение капч в ваш Python-скрипт? Официальная библиотека 2captcha-python — это самый быстрый и надёжный способ интегрировать API 2Captcha без ручного написания HTTP-запросов.
В этом руководстве расскажем, почему стоит выбрать именно этот модуль, как его подключить за минуту и какие возможности он открывает для автоматизации любых задач.
Общие сведения
2captcha-python — это официальный Python-клиент для API 2Captcha. Библиотека предоставляет простой объектно-ориентированный интерфейс для отправки задач на распознавание и получения результатов.
Почему этот модуль стоит использовать
- Единый интерфейс для всех типов капч — не нужно запоминать разные эндпоинты и параметры, библиотека абстрагирует всю сложность
- Полная поддержка async/await — асинхронные вызовы без блокировок, идеально для высоконагруженных скриптов
- Гибкая конфигурация — настраивайте таймауты, интервалы опроса, callback-уведомления под ваш сценарий
- Встроенная обработка ошибок — понятные исключения вместо сырых ответов сервера
- Поддержка прокси из коробки — передавайте прокси прямо в объекте капчи
- Актуальная поддержка — библиотека развивается вместе с API, все новые типы капч добавляются оперативно
Подготовка окружения
Минимальные требования:
- Python 3.6 или выше
- API-ключ из личного кабинета 2Captcha
Установка в одну команду через pip:
bash
pip install 2captcha-python
После установки добавьте импорт в ваш скрипт:
python
from twocaptcha import TwoCaptcha
Для асинхронного режима:
python
from twocaptcha import AsyncTwoCaptcha
Как устроен модуль
Основной класс: TwoCaptcha
Все взаимодействия с сервисом идут через экземпляр класса TwoCaptcha:
python
solver = TwoCaptcha('YOUR_API_KEY')
Гибкая настройка поведения
Вы можете настроить клиент под свои нужды через словарь конфигурации:
python
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
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
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
solver = TwoCaptcha('YOUR_API_KEY', callback='https://your.site/webhook')
result = solver.normal('captcha.jpg')
# result содержит только ID задачи, результат придёт на ваш сервер
Ручное управление потоком
Для сложных сценариев доступен низкоуровневый контроль:
python
task_id = solver.send({'method': 'post', 'body': '...'})
# ... ваша логика ...
result = solver.get_result(task_id)
Работа с прокси
Многие капчи требуют запрос с определённого IP. Передавайте прокси прямо в методе:
python
result = solver.recaptcha(
sitekey='6Le-wvkS...',
pageurl='https://example.com',
proxy='login:pass@123.123.123.123:8000',
proxy_type='HTTPS'
)
Дополнительные параметры капчи
Для текстовых и некоторых других типов можно уточнить ожидания:
python
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
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 задач и время ответа для отладки и аудита
- Тестируйте в песочнице — перед запуском в продакшен проверьте интеграцию на тестовом окружении
- Следите за балансом — настройте уведомления о низком балансе, чтобы избежать простоев
Дополнительные ресурсы
- Исходный код на GitHub — примеры, issues, релизы
- Асинхронные примеры — готовые сниппеты для async-режима
- Полная документация API — все эндпоинты и параметры
- Примеры для Python — готовые сниппеты для каждого типа капчи
- Справочник ошибок — расшифровка всех кодов ответов
- Поддержка — если что-то пошло не так
Контрольный список перед запуском
- Библиотека установлена через pip
- API-ключ получен и сохранён в переменной окружения
- Выбран правильный метод и настроены обязательные параметры
- Настроены таймауты и интервал опроса под вашу нагрузку
- Реализована обработка исключений и базовое логирование
- Протестировано решение с реальными параметрами целевого сайта
- При необходимости настроен Callback или прокси
Заключение
Модуль 2captcha-python — это надёжный и удобный способ добавить решение капч в любой Python-проект. Он скрывает сложность API за простым интерфейсом, поддерживает асинхронность, гибко настраивается и покрывает все популярные типы капч.
Начните с базовой настройки клиента, выберите нужный метод и добавьте обработку ошибок — этого достаточно для стабильной работы. А когда задача вырастет, библиотека масштабируется вместе с вами: поддерживаются callback-уведомления, ручное управление потоком, прокси и расширенное логирование.
Документация, примеры кода и поддержка 2Captcha помогут быстро разобраться с любым сценарием.
Автоматизируйте обход капч эффективно и с минимальными усилиями — с 2captcha-python.