pycaptcha-hub
Унифицированная библиотека для решения капч с поддержкой популярных сервисов (RuCaptcha, 2Captcha, Anti-Captcha, CapMonster), а также сложных типов капч (GeeTest v4, reCAPTCHA Enterprise). Поддерживает синхронный и асинхронный (asyncio) режимы работы.
Возможности
- Единый абстрактный интерфейс для различных провайдеров.
- Поддержка синхронного и асинхронного режимов для всех решателей.
- Интеграция с провайдерами:
- RuCaptcha / 2Captcha
- Anti-Captcha
- CapMonster Cloud
- Поддержка современных типов капч:
- ImageToText: распознавание текста по изображению.
- reCAPTCHA v2 / v3.
- GeeTest v4 / v3 (
GeeTestSolver,AsyncGeeTestSolver). - reCAPTCHA Enterprise (
ReCaptchaEnterpriseSolver,AsyncReCaptchaEnterpriseSolver).
- Строгая типизация (Pydantic-модели валидации задач и результатов,
py.typed). - Гибкая конфигурация API-ключей: передача в конструктор, чтение из переменных окружения или опциональная интеграция с
chutils.secret_manager.
Установка
pip install pycaptcha-hub
Или с использованием uv:
uv add pycaptcha-hub
Требуется Python >= 3.11.
Быстрый старт
Решение текстовой капчи по изображению
from pycaptcha_hub import RuCaptchaSolver, CaptchaError
try:
# Ключ автоматически берется из переменной окружения RUCAPTCHA_API_KEY
solver = RuCaptchaSolver()
with open("captcha.png", "rb") as f:
text = solver.solve_image(f.read(), timeout=60.0, poll_interval=3.0)
print(f"Текст капчи: {text}")
except CaptchaError as e:
print(f"Ошибка решения капчи: {e}")
Асинхронное решение reCAPTCHA v2
import asyncio
from pycaptcha_hub import AsyncAntiCaptchaSolver
async def main() -> None:
# Ключ автоматически считывается из переменной ANTICAPTCHA_API_KEY
solver = AsyncAntiCaptchaSolver()
token = await solver.solve_recaptcha(
sitekey="6LeOeSkUAAAAACl2pxhXLD37t3h7wJz16F8ySU73",
page_url="https://example.com/login",
)
print(f"Токен reCAPTCHA: {token}")
asyncio.run(main())
Решение GeeTest v4
from pycaptcha_hub import GeeTestSolver
solver = GeeTestSolver(provider="rucaptcha")
result = solver.solve(
captcha_id="your_geetest_captcha_id",
page_url="https://example.com/login",
risk_type="slide",
)
# Результат содержит lot_number, pass_token, gen_time, captcha_output
print(result.to_validation_payload())
Решение reCAPTCHA Enterprise
from pycaptcha_hub import ReCaptchaEnterpriseSolver
solver = ReCaptchaEnterpriseSolver(provider="capmonster")
token = solver.solve(
site_key="6Lf_enterprise_site_key",
page_url="https://example.com/checkout",
action="checkout",
)
print(f"Токен: {token}")
Переменные окружения для API-ключей
Если ключ не передан явно в конструктор, солвер автоматически проверяет соответствующие переменные окружения:
| Солвер | Переменные окружения |
|---|---|
RuCaptchaSolver / AsyncRuCaptchaSolver |
RUCAPTCHA_API_KEY, TWOCAPTCHA_API_KEY |
AntiCaptchaSolver / AsyncAntiCaptchaSolver |
ANTICAPTCHA_API_KEY |
CapMonsterSolver / AsyncCapMonsterSolver |
CAPMONSTER_API_KEY |
GeeTestSolver / ReCaptchaEnterpriseSolver |
В зависимости от провайдера (RUCAPTCHA_API_KEY, TWOCAPTCHA_API_KEY, CAPMONSTER_API_KEY) |
Иерархия исключений
PyCaptchaHubError
└── CaptchaConfigurationError
└── CaptchaError
├── CaptchaTimeoutError
├── CaptchaBalanceError
└── CaptchaServiceError
Лицензия
MIT License.
Metadata
Release files for pycaptcha-hub 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pycaptcha_hub-0.1.0.tar.gz | 11.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pycaptcha_hub-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.1 kB
Release files / pycaptcha_hub-0.1.0.tar.gz
| Download URL | pycaptcha_hub-0.1.0.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2834830a725a3e2809704f27bd3a30932ab63b3793f6aaf4dccacd9c1722a78a
|
|
BLAKE2b-256 checksum How to use checksums |
c3964bc2859d36cf586af50e48074710ea919ee1b49f845c02eb68f8991ddaba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pycaptcha_hub-0.1.0-py3-none-any.whl
| Download URL | pycaptcha_hub-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2a4050eae36ccfaadb93314eceb10c9cd7e9cce5224d8c52b265a82f16b0907a
|
|
BLAKE2b-256 checksum How to use checksums |
374bd991eae057d3db936e8b099841b5d76c3cbd0db8f4ddc0f4e2206632bfe7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|