Integrasi

Bright Data + CaptchaAI: Panduan Integrasi Proxy Lengkap

Bright Data (sebelumnya Luminati) menyediakan jaringan proxy terbesar – 72 juta+ IP perumahan di 195 negara. Dikombinasikan dengan CaptchaAI, Anda mendapatkan IP bersih untuk browsing ditambah penyelesaian CAPTCHA otomatis ketika tantangan muncul.


Arsitektur

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

CaptchaAI tidak merutekan melalui proxy Anda — CaptchaAI menyelesaikan di sisi server menggunakan infrastrukturnya sendiri. Proxy Anda menangani browsing; CaptchaAI menangani CAPTCHA.


Jenis Proksi Data Cerah

Tipe IP Kecepatan Biaya Tingkat CAPTCHA
Datacenter 770K+ Cepat Rendah Lebih tinggi
Residensial 72 juta+ Sedang Sedang Lebih rendah
ISP 700K+ Cepat Tinggi Terendah
Mobile 7 juta+ Lambat Tinggi Sangat rendah

Integrasi Python

Permintaan + Data Cerah + 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")

Selenium + 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("--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()

Penargetan Khusus Negara

Bright Data mendukung penargetan negara, negara bagian, dan kota:

# 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

Manajemen Sesi

# 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"
)

Untuk alur kerja CAPTCHA: Gunakan sesi melekat. Token CAPTCHA terikat pada IP yang memuat halaman – menggunakan IP yang berbeda untuk pengiriman akan gagal.


Integrasi Node.js + Bright Data + CaptchaAI

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");
}

Konfigurasi Zone Bright Data

Pengaturan Zone Direkomendasikan untuk CAPTCHA Alasan
Tipe proxy Residensial Tingkat pemicu CAPTCHA terendah
Penargetan negara Cocokkan lokasi situs target Konsistensi IP ↔ konten
Tipe sesi Sticky Token harus cocok dengan IP asal
Filter kualitas IP Kualitas tinggi Hindari IP yang ditandai
Maks concurrent 100+ Alur kerja CAPTCHA paralel

Pemecahan Masalah

Masalah Penyebab Solusi
407 dari proxy Kredensial salah Verifikasi ID pelanggan, zone, dan password
CAPTCHA muncul setiap permintaan Proxy datacenter terdeteksi Beralih ke zone residensial
Token ditolak IP berubah antara solve dan submit Gunakan sesi sticky
Respons lambat Node exit yang padat Target negara/kota yang kurang populer
Koneksi ditolak Batas bandwidth tercapai Periksa dasbor Bright Data

Pertanyaan Umum

Apakah CaptchaAI menggunakan proxy Bright Data saya?

Tidak. CaptchaAI menyelesaikan CAPTCHA menggunakan infrastrukturnya sendiri. Proxy Anda hanya digunakan untuk browsing. Anda meneruskan URL halaman dan sitekey ke API CaptchaAI.

Zone Bright Data mana yang paling cocok untuk situs dengan banyak CAPTCHA?

Zone residensial atau ISP. IP datacenter lebih cenderung memicu CAPTCHA. Proxy ISP menggabungkan kecepatan datacenter dengan kepercayaan residensial.

Haruskah saya menggunakan sesi sticky atau rotating?

Sticky untuk alur kerja CAPTCHA. Token CAPTCHA terikat pada IP — jika IP Anda berubah antara memuat halaman dan mengirimkan formulir, token akan ditolak.

Bisakah saya meneruskan proxy saya ke CaptchaAI?

Ya — API CaptchaAI menerima parameter proxy. Ini membuat CaptchaAI menyelesaikan CAPTCHA dari IP yang sama. Berguna untuk tantangan yang terikat IP.


Panduan Terkait

  • Rotasi egress jaringan yang diotorisasi untuk Pemecahan CAPTCHA
  • ISP vs Proxy Datacenter untuk CAPTCHA

Gabungkan jaringan proxy Bright Data dengan penyelesaian CAPTCHA otomatis — dapatkan kunci CaptchaAI Anda dan skalakan otomatisasi Anda.

Komentar dinonaktifkan untuk artikel ini.