Skip to content

Python модуль

Используется Python для автоматического решения капчи.
Поддерживает клики по изображениям, перетягивание ползунка и другие типы.

Актуальная версия:

ВерсияИзмененияСкачать
0.2Фикс хкапчиСкачать
0.1Initial releaseСкачать

Скопируйте папку captcha_solver в свой проект.

Как использовать

Импортируйте CaptchaSolver из пакета.
Скопируйте код из примера для нужного типа.
Передайте страницу с капчей и API ключ.
Вызовите нужный метод решения капчи.
На взаимодействие с капчей нужно подождать пару секунд.

Примеры

py
# pip install playwright playwright-stealth
# playwright install chrome

import asyncio
from playwright.async_api import async_playwright
from playwright_stealth import stealth_async
from captcha_solver import CaptchaSolver

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(
            headless=False,
            channel="chrome",
            args=["--disable-blink-features=AutomationControlled"],
        )
        page = await browser.new_page()
        await stealth_async(page)
        await page.goto('https://site.com/cap')

        solver = CaptchaSolver(
            page=page,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        await solver.solve_other()
        await browser.close()

asyncio.run(main())
py
# pip install playwright
# playwright install

import asyncio
from playwright.async_api import async_playwright
from captcha_solver import CaptchaSolver

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=False)
        page = await browser.new_page()
        await page.goto('https://site.com/cap')
        solver = CaptchaSolver(
            page=page,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        await solver.solve_other()
        await browser.close()

asyncio.run(main())
py
# pip install selenium
# Firefox browser and geckodriver must be installed

from selenium import webdriver
from captcha_solver import CaptchaSolver

def main():
    options = webdriver.FirefoxOptions()
    # options.add_argument('--headless')
    driver = webdriver.Firefox(options=options)
    try:
        driver.get('https://site.com/cap')
        solver = CaptchaSolver(
            driver=driver,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        solver.solve_other()
    finally:
        driver.quit()

if __name__ == '__main__':
    main()
py
# pip install undetected-chromedriver
# Chrome browser must be installed

import undetected_chromedriver as uc
from captcha_solver import CaptchaSolver

def main():
    driver = uc.Chrome(headless=False)
    try:
        driver.get('https://site.com/cap')
        solver = CaptchaSolver(
            driver=driver,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        solver.solve_other()
    finally:
        driver.quit()

if __name__ == '__main__':
    main()
py
# pip install selenium
# Chrome browser and chromedriver must be installed

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from captcha_solver import CaptchaSolver

def main():
    options = webdriver.ChromeOptions()
    # options.add_argument('--headless')
    service = Service()  # укажите путь: Service('/path/to/chromedriver')
    driver = webdriver.Chrome(service=service, options=options)
    try:
        driver.get('https://site.com/cap')
        solver = CaptchaSolver(
            driver=driver,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        solver.solve_other()
    finally:
        driver.quit()

if __name__ == '__main__':
    main()
py
# pip install selenium-wire undetected-chromedriver
# Chrome browser must be installed

import seleniumwire.undetected_chromedriver as uc
from captcha_solver import CaptchaSolver

def main():
    options = uc.ChromeOptions()
    # options.add_argument('--headless')
    driver = uc.Chrome(options=options, headless=False)
    try:
        driver.get('https://site.com/cap')
        solver = CaptchaSolver(
            driver=driver,
            api_key='YOUR_KEY',
            debug=True,
            attempts=5,
        )
        solver.solve_other()
    finally:
        driver.quit()

if __name__ == '__main__':
    main()

Методы:

         await solver.solve_recaptcha2()
         await solver.solve_hcaptcha()
         await solver.solve_other()
         await solver.solve_geetest()
         await solver.solve_funcaptcha()
         await solver.solve_tiktok()

Поддержка капч:


reCaptcha2FunCaptchaTikTokGeeTesthCaptchaOther
ДаДаДаДаДаДа

Параметры:


ПараметрТипПо умолчаниюОписание
pagePageСтраница с капчей
api_keystrAPI-ключ Cap.Guru
attemptsint5Макс. количество попыток
debugboolFalseВывод отладочных сообщений
selectorstr''CSS-селектор контейнера капчи

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

Все солверы выбрасывают RuntimeError при неудаче:

python
try:
    await solver.solve_recaptcha2()
except RuntimeError as e:
    if 'ERROR_CAPTCHA_UNSOLVABLE' in str(e):
        print('Капча не решена за все попытки')