Bright Data (eski adıyla Luminati), 195 ülkede 72 milyondan fazla konut IP'si ile en büyük proxy ağını sağlar. CaptchaAI ile birlikte, gezinme için temiz IP'lere ve zorluklarla karşılaştığınızda otomatik CAPTCHA çözümüne sahip olursunuz.
Mimarlık
Your Script ──▶ Bright Data Proxy ──▶ Target Site
│
CAPTCHA appears
│
CaptchaAI API ──▶ Solved token
│
Inject token ◀─┘
CaptchaAI proxy'niz üzerinden yönlendirme yapmaz; kendi altyapısını kullanarak sunucu tarafını çözer. Proxy'niz taramayı yönetir; CaptchaAI CAPTCHA'ları yönetir.
Parlak Veri Proxy Türleri
| Tür | IP'ler | Hız | Maliyet | CAPTCHA Oranı |
|---|---|---|---|---|
| Veri merkezi | 770.000+ | Hızlı | Düşük | Daha yüksek |
| Konut | 72 milyondan fazla | Orta | Orta | Daha düşük |
| İSS | 700.000+ | Hızlı | Yüksek | En düşük |
| Mobil | 7 milyonun üzerinde | Yavaş | Yüksek | Çok düşük |
Python Entegrasyonu
İstekler + Parlak Veriler + 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")
Selenyum + Parlak Veri + 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("--no-sandbox")
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()
Ülkeye Özel Hedefleme
Bright Data ülke, eyalet ve şehir hedeflemeyi destekler:
# 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
Oturum Yönetimi
# 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 iş akışları için: Sabit oturumları kullanın. CAPTCHA belirteci, sayfayı yükleyen IP'ye bağlıdır; gönderim için farklı bir IP kullanılması başarısız olur.
Node.js Entegrasyonu
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");
}
Parlak Veri Bölgesi Yapılandırması
| Bölge Ayarı | CAPTCHA için önerilir | neden |
|---|---|---|
| Vekil türü | Konut | En düşük CAPTCHA tetikleme oranı |
| Ülke hedefleme | Hedef site konumunu eşleştir | IP – içerik tutarlılığı |
| Oturum türü | Yapışkan | Jeton, kaynak IP ile eşleşmelidir |
| IP kalitesi filtresi | Yüksek kalite | İşaretli IP'lerden kaçının |
| Maksimum eşzamanlı | 100+ | Paralel CAPTCHA iş akışları |
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| proxy'den 407 | Yanlış kimlik bilgileri | Müşteri kimliğini, bölgeyi ve şifreyi doğrulayın |
| CAPTCHA her istekte görünür | Veri merkezi proxy'si algılandı | Yerleşim bölgesine geçiş |
| Jeton reddedildi | Çözme ve gönderme arasında IP değişti | Yapışkan oturumları kullanın |
| Yavaş yanıt | Sıkışık çıkış düğümü | Daha az popüler olan ülkeyi hedefle/city |
| Bağlantı reddedildi | Bant genişliği sınırına ulaşıldı | Parlak Veri kontrol panelini kontrol edin |
SSS
CaptchaAI Bright Data proxy'mi kullanıyor mu?
Hayır. CaptchaAI, CAPTCHA'ları kendi altyapısını kullanarak çözer. Proxy'niz yalnızca gezinmek için kullanılır. Sayfa URL'sini ve site anahtarını CaptchaAI'nin API'sine iletirsiniz.
CAPTCHA ağırlıklı siteler için hangi Bright Data bölgesi en iyi sonucu verir?
Konut veya İSS bölgeleri. Veri merkezi IP'lerinin CAPTCHA'ları tetikleme olasılığı daha yüksektir. ISP proxy'leri veri merkezi hızını konut güveniyle birleştirir.
Yapışkan veya dönüşümlü oturumlar kullanmalı mıyım?
CAPTCHA iş akışları için yapışkan. CAPTCHA jetonu IP'ye bağlıdır; IP'niz sayfa yükleme ile form gönderimi arasında değişirse jeton reddedilecektir.
Proxymi CaptchaAI'ye aktarabilir miyim?
Evet - CaptchaAI'nin API'si bir proxy parametresini kabul eder. Bu, CaptchaAI'nin CAPTCHA'yı aynı IP'den çözmesini sağlar. IP'ye bağlı zorluklar için kullanışlıdır.
İlgili Kılavuzlar
- CAPTCHA Çözümü için Dönüşümlü Kendi sunucu altyapınız'leri
- Proxy Kalitesi CAPTCHA Çözme Hızını Etkiler
- CAPTCHA için ISP ve Veri Merkezi Proxy'leri
Bright Data'nın proxy ağını otomatik CAPTCHA çözümüyle birleştirin -CaptchaAI anahtarınızı alınve otomasyonunuzu ölçeklendirin.