توفر 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 | السرعة | التكلفة | معدل CAPTCHA |
|---|---|---|---|---|
| مركز البيانات | 770 ألف+ | سريع | منخفض | أعلى |
| سكني | 72 مليون+ | متوسط | متوسط | أقل |
| مزود خدمة الإنترنت | 700 ألف+ | سريع | عالية | أدنى |
| الجوال | 7 مليون+ | بطيء | عالية | منخفض جدًا |
التكامل بايثون
الطلبات + 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")
السيلينيوم + Bright Data + 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
| إعداد المنطقة | موصى به لاختبار CAPTCHA | لماذا |
|---|---|---|
| نوع الوكيل | سكني | أقل معدل تشغيل لاختبار CAPTCHA |
| استهداف البلاد | تطابق موقع الموقع المستهدف | IP † تناسق المحتوى |
| نوع الجلسة | لزجة | يجب أن يتطابق الرمز المميز مع عنوان IP الأصلي |
| مرشح جودة IP | جودة عالية | تجنب عناوين IP التي تم وضع علامة عليها |
| ماكس المتزامنة | 100+ | سير عمل CAPTCHA الموازي |
استكشاف الأخطاء وإصلاحها
| المشكلة | السبب | الإجراء |
|---|---|---|
| 407 من الوكيل | أوراق اعتماد خاطئة | التحقق من معرف العميل والمنطقة وكلمة المرور |
| يظهر اختبار CAPTCHA في كل طلب | تم اكتشاف وكيل مركز البيانات | التبديل إلى المنطقة السكنية |
| تم رفض الرمز المميز | تم تغيير IP بين الحل والإرسال | استخدم الجلسات اللزجة |
| استجابة بطيئة | عقدة الخروج المزدحمة | استهدف البلد الأقل شعبية/city |
| تم رفض الاتصال | تم الوصول إلى حد النطاق الترددي | تحقق من لوحة معلومات Bright Data |
الأسئلة الشائعة
هل يستخدم CaptchaAI وكيل Bright Data الخاص بي؟
لا، CaptchaAI تحل اختبارات CAPTCHA باستخدام البنية التحتية الخاصة بها. يتم استخدام الوكيل الخاص بك فقط للتصفح. يمكنك تمرير عنوان URL للصفحة ومفتاح الموقع إلى واجهة برمجة تطبيقات CaptchaAI.
ما هي منطقة Bright Data التي تعمل بشكل أفضل مع مواقع CAPTCHA الثقيلة؟
المناطق السكنية أو مناطق مزودي خدمات الإنترنت. من المرجح أن تقوم عناوين IP الخاصة بمراكز البيانات بتشغيل اختبارات CAPTCHA. تجمع وكلاء ISP بين سرعة مركز البيانات والثقة السكنية.
هل يجب أن أستخدم الجلسات الثابتة أو الدورية؟
مثبت لسير عمل CAPTCHA. رمز CAPTCHA مرتبط بـ IP - إذا كان IP الخاص بك يدور بين تحميل الصفحة وإرسال النموذج، فسيتم رفض الرمز المميز.
هل يمكنني تمرير الوكيل الخاص بي إلى CaptchaAI؟
نعم - تقبل واجهة برمجة التطبيقات الخاصة بـ CaptchaAI معلمة proxy. وهذا يجعل CaptchaAI يحل اختبار CAPTCHA من نفس عنوان IP. مفيدة للتحديات المرتبطة بالملكية الفكرية.
أدلة ذات صلة
- تدوير الوكلاء السكنيين لحل اختبار CAPTCHA
- تؤثر جودة الوكيل على معدل حل اختبار CAPTCHA
- ISP مقابل وكلاء مركز البيانات لـ CAPTCHA
الجمع بين شبكة وكيل Bright Data وحل اختبار CAPTCHA الآلي –احصل على مفتاح CaptchaAI الخاص بكوتوسيع نطاق التشغيل الآلي الخاص بك.
النقاشات (0)
شارك في النقاش
سجّل الدخول لمشاركة رأيك.
تسجيل الدخوللا توجد تعليقات بعد.