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 السرعة التكلفة معدل 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. مفيدة للتحديات المرتبطة بالملكية الفكرية.


أدلة ذات صلة


الجمع بين شبكة وكيل Bright Data وحل اختبار CAPTCHA الآلي –احصل على مفتاح CaptchaAI الخاص بكوتوسيع نطاق التشغيل الآلي الخاص بك.

النقاشات (0)

لا توجد تعليقات بعد.

مقالات ذات صلة

Use Cases جمع البيانات البحثية الأكاديمية من المواقع المحمية بـ CAPTCHA
دليل عملي حول جمع البيانات البحثية الأكاديمية من المواقع المحمية بـ CAPTCHA يشرح السيناريوهات الواقعية ونمط التشغيل الآمن والخطوات التي تجعل هذا المسار قابلاً ل...

دليل عملي حول جمع البيانات البحثية الأكاديمية من المواقع المحمية بـ CAPTCHA يشرح السيناريوهات الواقعية ونمط ال...

Apr 16, 2026
Use Cases أتمتة إرسال النماذج مع التعامل مع CAPTCHA
دليل عملي حول أتمتة إرسال النماذج مع التعامل مع CAPTCHA يشرح السيناريوهات الواقعية ونمط التشغيل الآمن والخطوات التي تجعل هذا المسار قابلاً للتكرار باستخدام Capt...

دليل عملي حول أتمتة إرسال النماذج مع التعامل مع CAPTCHA يشرح السيناريوهات الواقعية ونمط التشغيل الآمن والخطوات...

Apr 19, 2026
Use Cases مراقبة أسعار تذاكر الطيران على المواقع المحمية بـ CAPTCHA
دليل عملي حول مراقبة أسعار تذاكر الطيران على المواقع المحمية بـ CAPTCHA يشرح السيناريوهات الواقعية ونمط التشغيل الآمن والخطوات التي تجعل هذا المسار قابلاً للتكر...

دليل عملي حول مراقبة أسعار تذاكر الطيران على المواقع المحمية بـ CAPTCHA يشرح السيناريوهات الواقعية ونمط التشغي...

Apr 16, 2026