Skip to main content

pycaptcha-hub

Python License: MIT

Унифицированная библиотека для решения капч с поддержкой популярных сервисов (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)

Source distribution for pycaptcha-hub 0.1.0
File Size Uploaded
pycaptcha_hub-0.1.0.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycaptcha-hub 0.1.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page