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

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

Как решить Tencent капчу на OpenModel AI

Грегори Фишер
Грегори Фишер

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

Введение

OpenModel AI — это платформа для работы с моделями искусственного интеллекта. Для защиты процессов аутентификации и регистрации сайт использует Tencent CAPTCHA. Это поведенческая капча, которая часто выглядит как слайдер или задание на сборку пазла.

В этом руководстве мы разберем, как получить необходимые параметры, решить капчу через API 2Captcha и корректно внедрить полученные токены (ticket и randstr) на страницу авторизации.

Параметры задачи

Для обхода Tencent CAPTCHA на OpenModel AI используется тип задачи TencentTaskProxyless (или TencentTask, если требуются ваши прокси).

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "TencentTaskProxyless",
        "appId": "196724674",
        "websiteURL": "https://console.openmodel.ai/auth",
        "captchaScript": "https://captchacdn.tencentcloudcs.com/TCaptcha-global.js"
    }
}

Как найти параметры

websiteURL

Это полный адрес страницы, на которой появляется капча. В данном случае это страница авторизации: https://console.openmodel.ai/auth

appId (CaptchaAppId)

Это уникальный идентификатор приложения в Tencent Cloud.

  1. Откройте страницу авторизации и нажмите F12 (Инструменты разработчика).
  2. Перейдите на вкладку Network (Сеть).
  3. Обновите страницу или вызовите появление капчи.
  4. В фильтре введите tencent или captcha.
  5. Найдите запрос к API капчи или скрипт инициализации. В параметрах запроса (Query String Parameters) или в исходном коде страницы (в вызове new TencentCaptcha('...', ...)) вы найдете значение appId. Для OpenModel AI это 196724674.

captchaScript (КРИТИЧЕСКИ ВАЖНО)

Это URL JavaScript-библиотеки, которую использует сайт для отображения капчи.

ВАЖНО: Для корректного решения капчи на этом сайте необходимо передавать именно https://captchacdn.tencentcloudcs.com/TCaptcha-global.js. Использование стандартного скрипта по умолчанию или любого другого URL приведет к ошибке решения (ERROR_CAPTCHA_UNSOLVABLE) или отклонению токена сайтом.

Как найти:

  1. На вкладке Network отфильтруйте запросы по типу JS.
  2. Найдите запрос, загружающий библиотеку Tencent (обычно содержит TCaptcha или tencentcloudcs).
  3. Скопируйте полный URL этого скрипта и передайте его в параметр captchaScript.

Примеры кода

Python + requests (Получение токенов)

Этот код отправляет задачу в API и возвращает готовые токены ticket и randstr.

python Copy
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

from twocaptcha import TwoCaptcha

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

try:
    result = solver.tencent(
        app_id='196724674',
        url='https://console.openmodel.ai/auth',
        captcha_script='https://captchacdn.tencentcloudcs.com/TCaptcha-global.js'
    )
    print("Капча успешно решена!")
    print(f"Ticket: {result['ticket']}")
    print(f"Randstr: {result['randstr']}")
    
except Exception as e:
    print(f"Произошла ошибка: {e}")

Python + Playwright (Автоматизация браузера)

При автоматизации браузера полученные токены необходимо внедрить в скрытые поля формы или вызвать callback-функцию, чтобы сайт распознал успешное прохождение проверки.

python Copy
import asyncio
from playwright.async_api import async_playwright
from twocaptcha import TwoCaptcha

API_KEY = 'YOUR_API_KEY'
APP_ID = '196724674'
PAGE_URL = 'https://console.openmodel.ai/auth'
CAPTCHA_SCRIPT = 'https://captchacdn.tencentcloudcs.com/TCaptcha-global.js'

async def solve_and_inject():
    solver = TwoCaptcha(API_KEY)
    
    try:
        # 1. Решаем капчу через API
        result = solver.tencent(
            app_id=APP_ID,
            url=PAGE_URL,
            captcha_script=CAPTCHA_SCRIPT
        )
        ticket = result['ticket']
        randstr = result['randstr']
        print(f"Капча решена! Ticket: {ticket}, Randstr: {randstr}")
        
        async with async_playwright() as p:
            browser = await p.chromium.launch(headless=False)
            page = await browser.new_page()
            
            await page.goto(PAGE_URL)
            await page.wait_for_selector('iframe[src*="tencent"]', timeout=10000)
            
            # 2. Внедряем токены в скрытые поля (стандартный метод для Tencent)
            await page.evaluate(f"""
                // Находим и заполняем стандартные скрытые поля Tencent
                const ticketInput = document.querySelector('input[name="ticket"]') || document.getElementById('ticket');
                const randstrInput = document.querySelector('input[name="randstr"]') || document.getElementById('randstr');
                
                if (ticketInput) ticketInput.value = '{ticket}';
                if (randstrInput) randstrInput.value = '{randstr}';
                
                // Если сайт использует callback, пытаемся его вызвать
                if (typeof window.onTencentCaptchaSuccess === 'function') {{
                    window.onTencentCaptchaSuccess({{ ret: 0, ticket: '{ticket}', randstr: '{randstr}' }});
                }}
            """)
            
            # 3. Нажимаем кнопку входа/отправки (раскомментируйте и адаптируйте селектор под реальный сайт)
            # await page.click('button[type="submit"]')
            
            await asyncio.sleep(5) # Пауза для визуальной проверки
            await browser.close()
            
    except Exception as e:
        print(f"Ошибка: {e}")

asyncio.run(solve_and_inject())

Отчеты о правильности решения

Если сайт отклонил полученные токены, обязательно сообщите об этом через метод reportIncorrect. Это помогает сервису улучшать алгоритмы и возвращает вам средства за неудачную попытку. Если токены были успешно приняты, отправьте reportCorrect.

Отправить отчет можно через API:

python Copy
import requests

API_KEY = "YOUR_API_KEY"
TASK_ID = "123456789" # Замените на реальный ID задачи из ответа API

# Отчет о неверном решении
requests.post(
    "https://api.2captcha.com/reportIncorrect",
    json={"clientKey": API_KEY, "taskId": TASK_ID}
)

# Отчет о правильном решении
requests.post(
    "https://api.2captcha.com/reportCorrect",
    json={"clientKey": API_KEY, "taskId": TASK_ID}
)

Подробный гайд по отправке отчетов с примерами для разных языков: https://2captcha.com/h/how-to-submit-reports

Частые ошибки и решения

Ошибка / Проблема Причина Решение
ERROR_CAPTCHA_UNSOLVABLE Неверный appId или, что чаще всего, неверный captchaScript. Убедитесь, что вы передаете именно https://captchacdn.tencentcloudcs.com/TCaptcha-global.js в параметр captchaScript.
Токены получены, но сайт не пускает Токены не были внедрены в правильные поля, или истекло время их жизни. Внедряйте ticket и randstr сразу после получения. Проверьте через DevTools, какие именно input поля или callback-функции ожидает форма OpenModel AI.
ERROR_WRONG_USER_KEY Неверный API-ключ. Проверьте, что вы используете правильный ключ из личного кабинета 2Captcha.
ERROR_ZERO_BALANCE Недостаточно средств на балансе. Пополните счет в личном кабинете 2Captcha.

Полезные ссылки