Туториалы по API

Методы аутентификации прокси для API CaptchaAI

CaptchaAI поддерживает передачу вашего собственного прокси-сервера в решающий API — это позволяет CaptchaAI решать CAPTCHA с IP-адреса вашего прокси-сервера, не является универсальным обещанием, что токен соответствует IP-адресу, с которого загрузилась страница. Вот как настроить каждый метод аутентификации.


Когда передавать прокси CaptchaAI

Сценарий Пропустить прокси? Почему
Стандартный reCAPTCHA v2 Обычно не требуется Токен работает с любого IP
reCAPTCHA v3 Необязательный Оценка может зависеть от IP
Cloudflare Turnstile Рекомендуется Токен привязан к IP
страница Cloudflare-защиты в staging Необходимый Задача, связанная с интеллектуальной собственностью
Сеансы с привязкой к IP Необходимый Токен проверен по исходному IP-адресу

Методы аутентификации

1. Имя пользователя/Password (HTTP)

import requests
import time

CAPTCHAAI_KEY = "YOUR_API_KEY"
CAPTCHAAI_URL = "https://ocr.captchaai.com"


def solve_with_http_proxy(site_url, sitekey, proxy_host, proxy_port,
                           proxy_user, proxy_pass):
    """Pass HTTP proxy to CaptchaAI for IP-matched solving."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "json": 1,
    })

    data = resp.json()
    if data["status"] != 1:
        raise Exception(f"Submit: {data['request']}")

    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY,
            "action": "get",
            "id": task_id,
            "json": 1,
        })
        data = resp.json()
        if data["request"] == "CAPCHA_NOT_READY":
            continue
        if data["status"] == 1:
            return data["request"]
        raise Exception(f"Solve: {data['request']}")

    raise TimeoutError("Timeout")


# Usage
token = solve_with_http_proxy(
    site_url="https://example.com/form",
    sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    proxy_host="proxy.example.com",
    proxy_port=8080,
    proxy_user="myuser",
    proxy_pass="mypass",
)

2. Имя пользователя/Password (SOCKS5)

def solve_with_socks5_proxy(site_url, sitekey, proxy_host, proxy_port,
                             proxy_user, proxy_pass):
    """Pass SOCKS5 proxy to CaptchaAI."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "SOCKS5",
        "json": 1,
    })

    data = resp.json()
    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = resp.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Timeout")

3. Белый список IP-адресов (без аутентификации)

Некоторые прокси-провайдеры аутентифицируются по белому списку IP-адресов вместо учетных данных:

def solve_with_whitelisted_proxy(site_url, sitekey, proxy_host, proxy_port):
    """Proxy with IP whitelist — no username/password."""
    proxy_param = f"{proxy_host}:{proxy_port}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "json": 1,
    })

    data = resp.json()
    task_id = data["request"]

    for _ in range(60):
        time.sleep(5)
        resp = requests.get(f"{CAPTCHAAI_URL}/res.php", params={
            "key": CAPTCHAAI_KEY, "action": "get",
            "id": task_id, "json": 1,
        })
        data = resp.json()
        if data["request"] != "CAPCHA_NOT_READY":
            return data["request"]

    raise TimeoutError("Timeout")

Важно: Для прокси-серверов из белого списка IP-адресов вы также должны внести в белый список IP-адреса серверов CaptchaAI, поскольку серверы CaptchaAI будут подключаться к вашему прокси-серверу.

4. HTTPS (CONNECT) прокси

def solve_with_https_proxy(site_url, sitekey, proxy_host, proxy_port,
                            proxy_user, proxy_pass):
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTPS",
        "json": 1,
    })

    # ... same polling logic ...

Примеры Node.js

const axios = require("axios");

const CAPTCHAAI_KEY = "YOUR_API_KEY";
const API = "https://ocr.captchaai.com";

async function solveWithProxy(siteUrl, sitekey, proxyConfig) {
  const params = {
    key: CAPTCHAAI_KEY,
    method: "userrecaptcha",
    googlekey: sitekey,
    pageurl: siteUrl,
    proxy: `${proxyConfig.host}:${proxyConfig.port}:${proxyConfig.user}:${proxyConfig.pass}`,
    proxytype: proxyConfig.type || "HTTP",
    json: 1,
  };

  const submit = await axios.post(`${API}/in.php`, null, { params });
  const taskId = submit.data.request;

  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));

    const result = await axios.get(`${API}/res.php`, {
      params: { key: CAPTCHAAI_KEY, action: "get", id: taskId, json: 1 },
    });

    if (result.data.request === "CAPCHA_NOT_READY") continue;
    if (result.data.status === 1) return result.data.request;
  }

  throw new Error("Timeout");
}

// Usage
const token = await solveWithProxy(
  "https://example.com/form",
  "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  {
    host: "proxy.example.com",
    port: 8080,
    user: "myuser",
    pass: "mypass",
    type: "HTTP", // HTTP, HTTPS, SOCKS4, or SOCKS5
  }
);

Справочник по формату параметров прокси

тип прокси формат прокси Пример
HTTP host:port:user:pass proxy.com:8080:user:pass
HTTPS host:port:user:pass proxy.com:8443:user:pass
SOCKS4 host:port:user:pass proxy.com:1080:user:pass
SOCKS5 host:port:user:pass proxy.com:1080:user:pass
Белый список IP-адресов host:port proxy.com:8080

Форматы, специфичные для поставщика

# Bright Data
proxy = "brd.superproxy.io:22225:brd-customer-ID-zone-residential:PASSWORD"
proxytype = "HTTP"

# Smartproxy
proxy = "gate.smartproxy.com:10001:spuser:sppassword"
proxytype = "HTTP"

# Oxylabs
proxy = "pr.oxylabs.io:7777:customer-USERNAME:PASSWORD"
proxytype = "HTTP"

Поиск неисправностей

Проблема Причина Исправить
ERROR_PROXY_NOT_AUTHORIZED Неправильные учетные данные или IP-адрес не внесен в белый список. Проверьте учетные данные прокси-сервера; белый список IP-адресов CaptchaAI
ERROR_PROXY_CONNECTION_FAILED Прокси недоступен от CaptchaAI Проверить прокси-сервер доступен с внешних IP-адресов
Токен отклонен целью IP-адрес прокси-сервера не соответствует IP-адресу загрузки страницы Используйте один и тот же липкий сеанс для обоих
Медленное решение с прокси Прокси увеличивает задержку Примите или используйте более быстрый прокси
ERROR_BAD_PARAMETERS Неправильный формат прокси Используйте формат host:port:user:pass.

Часто задаваемые вопросы

Всегда ли мне нужно передавать прокси?

Нет. Большинство реализаций reCAPTCHA v2 не привязывают токены к IP-адресам. Передавайте прокси-сервер только для задач, связанных с IP (Cloudflare, некоторые потоки OAuth).

Замедляет ли прохождение прокси решение?

Немного – CaptchaAI необходимо маршрутизировать через ваш прокси. Добавьте 2–5 секунд к обычному времени решения.

Могу ли я использовать ротацию прокси с параметром прокси CaptchaAI?

Используйте прикрепленные сеансы. Если вы передадите ротационный прокси, CaptchaAI может решить проблему с IP-адреса, отличного от того, с которого загрузилась страница.

Что произойдет, если мой прокси выйдет из строя?

CaptchaAI возвращает ERROR_PROXY_CONNECTION_FAILED. Реализуйте логику повтора с помощью резервного прокси.


Связанные руководства

  • SOCKS5 Прокси + CaptchaAI
  • Качество прокси влияет на скорость решения
  • Яркие данные + CaptchaAI

Передайте свой прокси-сервер CaptchaAI для решения CAPTCHA по IP-адресу —получите свой ключ API.

Комментарии для этой статьи отключены.