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и масштабируйте свою автоматизацию.