Integrations

Bright Data + CaptchaAI: полное руководство по интеграции прокси

Bright Data (ранее Luminati) предоставляет крупнейшую прокси-сеть — более 72 млн домашних IP-адресов в 195 странах. В сочетании с CaptchaAI вы получаете чистые IP-адреса для просмотра, а также автоматическое решение CAPTCHA при возникновении проблем.


Архитектура

Your Script ──▶ Bright Data Proxy ──▶ Target Site
                                          │
                                    CAPTCHA appears
                                          │
                                    CaptchaAI API ──▶ Solved token
                                          │
                            Inject token ◀─┘

CaptchaAI не маршрутизируется через ваш прокси — он решает проблемы на стороне сервера, используя собственную инфраструктуру. Ваш прокси занимается просмотром страниц, а CaptchaAI обрабатывает CAPTCHA.


Типы прокси Bright Data

Тип IP-адреса Скорость Расходы Уровень капчи
Центр обработки данных 770 тыс.+ Быстрый Низкий Выше
Жилой 72M+ Середина Середина Ниже
Интернет-провайдер 700 тыс.+ Быстрый Высокий Самый низкий
Мобильный 7М+ Медленный Высокий Очень низкий

Интеграция Python

Запросы + Bright Data + CaptchaAI

import requests
import time

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

# Bright Data proxy credentials
BRIGHT_DATA_PROXY = {
    "http": "http://brd-customer-CUSTOMER_ID-zone-ZONE:PASSWORD@brd.superproxy.io:22225",
    "https": "http://brd-customer-CUSTOMER_ID-zone-ZONE:PASSWORD@brd.superproxy.io:22225",
}


def fetch_with_proxy(url):
    """Fetch a page through Bright Data proxy."""
    resp = requests.get(
        url,
        proxies=BRIGHT_DATA_PROXY,
        headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
            "AppleWebKit/537.36 (KHTML, like Gecko) "
            "Chrome/126.0.0.0 Safari/537.36"
        },
        timeout=30,
    )
    return resp


def solve_recaptcha(site_url, sitekey):
    """Solve reCAPTCHA v2 via CaptchaAI."""
    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "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("Solve timeout")


def solve_turnstile(site_url, sitekey):
    """Solve Cloudflare Turnstile via CaptchaAI."""
    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "turnstile",
        "sitekey": sitekey,
        "pageurl": site_url,
        "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("Solve timeout")

Селен + Яркие данные + CaptchaAI

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

BRIGHT_DATA_HOST = "brd.superproxy.io"
BRIGHT_DATA_PORT = 22225
BRIGHT_DATA_USER = "brd-customer-CUSTOMER_ID-zone-residential"
BRIGHT_DATA_PASS = "PASSWORD"


def create_driver_with_proxy():
    options = webdriver.ChromeOptions()
    options.add_argument(
        f"--proxy-server=http://{BRIGHT_DATA_HOST}:{BRIGHT_DATA_PORT}"
    )
    options.add_argument("--disable-blink-features=AutomationControlled")
    options.add_argument("--window-size=1920,1080")

    driver = webdriver.Chrome(options=options)
    return driver


def scrape_with_captcha_solving(url, sitekey=None):
    driver = create_driver_with_proxy()

    try:
        driver.get(url)
        time.sleep(3)

        # Auto-detect sitekey if not provided
        if not sitekey:
            sitekey = driver.execute_script(
                "return document.querySelector('[data-sitekey]')"
                "?.getAttribute('data-sitekey')"
            )

        if sitekey:
            token = solve_recaptcha(url, sitekey)

            driver.execute_script(f"""
                document.querySelector('#g-recaptcha-response').value = '{token}';
                document.querySelectorAll('[name="g-recaptcha-response"]')
                    .forEach(el => {{ el.value = '{token}'; }});
            """)

            # Trigger callback
            driver.execute_script("""
                if (typeof ___grecaptcha_cfg !== 'undefined') {
                    const clients = ___grecaptcha_cfg.clients;
                    for (const key in clients) {
                        for (const prop in clients[key]) {
                            const val = clients[key][prop];
                            if (val && typeof val === 'object') {
                                for (const p in val) {
                                    if (typeof val[p]?.callback === 'function') {
                                        val[p].callback(arguments[0]);
                                    }
                                }
                            }
                        }
                    }
                }
            """)

        return driver.page_source

    finally:
        driver.quit()

Таргетинг на конкретную страну

Bright Data поддерживает таргетинг на страну, штат и город:

# Country targeting
proxy_us = "http://brd-customer-ID-zone-residential-country-us:PASS@brd.superproxy.io:22225"
proxy_uk = "http://brd-customer-ID-zone-residential-country-gb:PASS@brd.superproxy.io:22225"
proxy_de = "http://brd-customer-ID-zone-residential-country-de:PASS@brd.superproxy.io:22225"

# City targeting
proxy_nyc = "http://brd-customer-ID-zone-residential-country-us-city-newyork:PASS@brd.superproxy.io:22225"

# Use the geo-matched proxy for lower CAPTCHA rates
def scrape_localized(url, country="us"):
    proxy = f"http://brd-customer-ID-zone-residential-country-{country}:PASS@brd.superproxy.io:22225"
    resp = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
    return resp

Управление сеансами

# Sticky session (same IP for entire session)
proxy_sticky = (
    "http://brd-customer-ID-zone-residential"
    "-session-abc123:PASS@brd.superproxy.io:22225"
)

# Rotating (new IP each request)
proxy_rotating = (
    "http://brd-customer-ID-zone-residential:PASS@brd.superproxy.io:22225"
)

Для рабочих процессов CAPTCHA: Используйте закрепленные сеансы. Токен CAPTCHA привязан к IP-адресу, с которого загрузилась страница — использование другого IP-адреса для отправки не удастся.


Интеграция Node.js

const axios = require("axios");
const https = require("https");

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

const proxyAgent = new (require("https-proxy-agent"))(
  "http://brd-customer-ID-zone-residential:PASS@brd.superproxy.io:22225"
);

async function fetchWithProxy(url) {
  return axios.get(url, {
    httpsAgent: proxyAgent,
    headers: {
      "User-Agent":
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/126.0.0.0",
    },
  });
}

async function solveCaptcha(siteUrl, sitekey) {
  const submit = await axios.post(`${CAPTCHAAI_URL}/in.php`, null, {
    params: {
      key: CAPTCHAAI_KEY,
      method: "userrecaptcha",
      googlekey: sitekey,
      pageurl: siteUrl,
      json: 1,
    },
  });

  const taskId = submit.data.request;

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

    const result = await axios.get(`${CAPTCHAAI_URL}/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");
}

Конфигурация Bright Data Zone

Настройка зоны Рекомендуется для CAPTCHA Почему
Тип прокси Жилой Самая низкая частота запуска CAPTCHA
Таргетинг на страну Сопоставить местоположение целевого сайта IP — согласованность контента
Тип сеанса Липкий Токен должен соответствовать исходному IP-адресу.
Фильтр качества IP Высокое качество Избегайте помеченных IP-адресов
Макс. одновременно 100+ Параллельные рабочие процессы CAPTCHA

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

Проблема Причина Исправить
407 от прокси Неправильные учетные данные Проверьте идентификатор клиента, зону и пароль
CAPTCHA появляется при каждом запросе Обнаружен прокси-сервер центра обработки данных Перейти в жилую зону
Токен отклонен IP изменился между решением и отправкой Используйте прикрепленные сеансы
Медленный ответ Перегруженный выходной узел Таргетинг на менее популярную страну/city
В соединении отказано Достигнут предел пропускной способности Проверьте панель Bright Data

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

Использует ли CaptchaAI мой прокси Bright Data?

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

Какая зона Bright Data подходящий всего подходит для сайтов с большим количеством CAPTCHA?

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

Должен ли я использовать фиксированные или чередующиеся сеансы?

Прикреплен для рабочих процессов CAPTCHA. Токен CAPTCHA привязан к IP-адресу — если ваш IP-адрес меняется между загрузкой страницы и отправкой формы, токен будет отклонен.

Могу ли я передать свой прокси CaptchaAI?

Да — API CaptchaAI принимает параметр proxy. Это позволяет CaptchaAI решать CAPTCHA с того же IP-адреса. Полезно для задач, связанных с IP-адресом.


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

  • Ротация авторизованный сетевой выход для решения CAPTCHA
  • Качество прокси влияет на скорость решения CAPTCHA
  • Интернет-провайдер против прокси-серверов центров обработки данных для CAPTCHA

Объедините прокси-сеть Bright Data с автоматическим решением CAPTCHA —получите ключ CaptchaAIи масштабируйте свою автоматизацию.

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

Похожие сообщения

Use Cases Мониторинг тарифов авиакомпаний с обработкой CAPTCHA
Практическое руководство по мониторингу тарифов в стране с обработкой CAPTCHA, с реалистичными сценариями, советами по рабочему процессу и практическими шагами...

Практическое руководство по мониторингу тарифов в стране с обработкой CAPTCHA, с реалистичными сценариями, сов...

Apr 22, 2026
Use Cases Автоматическая отправка форм с обработкой CAPTCHA
Практическое руководство по Автоматической отработке форм CAPTCHA с реалистичными сценариями, советами по рабочему процессу и практическими действиями по исполь...

Практическое руководство по Автоматической отработке форм CAPTCHA с реалистичными сценариями, советами по рабо...

Apr 23, 2026
Tutorials Кеширование CAPTCHA-токенов в собственном backend в пределах TTL
Корректно кешируйте и переиспользуйте CAPTCHA-токены в пределах официального TTL для идемпотентных ретраев в собственном backend.

Корректно кешируйте и переиспользуйте CAPTCHA-токены в пределах официального TTL для идемпотентных ретраев в с...

May 02, 2026