Hướng Dẫn API

Phương thức xác thực proxy cho API CaptchaAI

CaptchaAI hỗ trợ chuyển proxy của riêng bạn tới API giải quyết — điều này giúp CaptchaAI giải CAPTCHA từ IP proxy của bạn, đảm bảo mã thông báo khớp với IP đã tải trang. Dưới đây là cách định cấu hình mọi phương thức xác thực.


Khi nào cần chuyển proxy tới CaptchaAI

Kịch bản Vượt qua proxy? tại sao
reCAPTCHA v2 tiêu chuẩn Thường không cần thiết Mã thông báo hoạt động từ bất kỳ IP nào
reCAPTCHA v3 Tùy chọn Điểm có thể phụ thuộc vào IP
Cloudflare Turnstile Được đề xuất Mã thông báo bị ràng buộc bởi IP
Cloudflare Challenge Bắt buộc Thử thách gắn liền với IP
Phiên giới hạn IP Bắt buộc Mã thông báo được xác thực dựa trên IP gốc

Phương thức xác thực

1. Tên người dùng/Password (HTTP)

import requests
import time

CAPTCHAAI_KEY = "YOUR_API_KEY"
CAPTCHAAI_URL = "https://ocr.captchaai.com"

def solve_with_http_proxy(site_url, sitekey, proxy_host, proxy_port,
                           proxy_user, proxy_pass):
    """Pass HTTP proxy to CaptchaAI for IP-matched solving."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "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("Timeout")

# Usage
token = solve_with_http_proxy(
    site_url="https://example.com/form",
    sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    proxy_host="proxy.example.com",
    proxy_port=8080,
    proxy_user="myuser",
    proxy_pass="mypass",
)

2. Tên người dùng/Password (SOCKS5)

def solve_with_socks5_proxy(site_url, sitekey, proxy_host, proxy_port,
                             proxy_user, proxy_pass):
    """Pass SOCKS5 proxy to CaptchaAI."""
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "SOCKS5",
        "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("Timeout")

3. Danh sách trắng IP (Không xác thực)

Một số nhà cung cấp proxy xác thực bằng danh sách IP trắng thay vì thông tin xác thực:

def solve_with_whitelisted_proxy(site_url, sitekey, proxy_host, proxy_port):
    """Proxy with IP whitelist — no username/password."""
    proxy_param = f"{proxy_host}:{proxy_port}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTP",
        "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("Timeout")

Quan trọng: Đối với proxy danh sách trắng IP, bạn cũng phải đưa IP máy chủ của CaptchaAI vào danh sách trắng vì máy chủ của CaptchaAI sẽ kết nối với proxy của bạn.

4. Proxy HTTPS (KẾT NỐI)

def solve_with_https_proxy(site_url, sitekey, proxy_host, proxy_port,
                            proxy_user, proxy_pass):
    proxy_param = f"{proxy_host}:{proxy_port}:{proxy_user}:{proxy_pass}"

    resp = requests.post(f"{CAPTCHAAI_URL}/in.php", data={
        "key": CAPTCHAAI_KEY,
        "method": "userrecaptcha",
        "googlekey": sitekey,
        "pageurl": site_url,
        "proxy": proxy_param,
        "proxytype": "HTTPS",
        "json": 1,
    })

    # ... same polling logic ...

Ví dụ về Node.js

const axios = require("axios");

const CAPTCHAAI_KEY = "YOUR_API_KEY";
const API = "https://ocr.captchaai.com";

async function solveWithProxy(siteUrl, sitekey, proxyConfig) {
  const params = {
    key: CAPTCHAAI_KEY,
    method: "userrecaptcha",
    googlekey: sitekey,
    pageurl: siteUrl,
    proxy: `${proxyConfig.host}:${proxyConfig.port}:${proxyConfig.user}:${proxyConfig.pass}`,
    proxytype: proxyConfig.type || "HTTP",
    json: 1,
  };

  const submit = await axios.post(`${API}/in.php`, null, { params });
  const taskId = submit.data.request;

  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));

    const result = await axios.get(`${API}/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");
}

// Usage
const token = await solveWithProxy(
  "https://example.com/form",
  "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  {
    host: "proxy.example.com",
    port: 8080,
    user: "myuser",
    pass: "mypass",
    type: "HTTP", // HTTP, HTTPS, SOCKS4, or SOCKS5
  }
);

Tham chiếu định dạng thông số proxy

loại proxy định dạng proxy Ví dụ
HTTP host:port:user:pass proxy.com:8080:user:pass
HTTPS host:port:user:pass proxy.com:8443:user:pass
SOCKS4 host:port:user:pass proxy.com:1080:user:pass
SOCKS5 host:port:user:pass proxy.com:1080:user:pass
danh sách trắng IP host:port proxy.com:8080

Định dạng dành riêng cho nhà cung cấp

# Bright Data
proxy = "brd.superproxy.io:22225:brd-customer-ID-zone-residential:PASSWORD"
proxytype = "HTTP"

# Smartproxy
proxy = "gate.smartproxy.com:10001:spuser:sppassword"
proxytype = "HTTP"

# Oxylabs
proxy = "pr.oxylabs.io:7777:customer-USERNAME:PASSWORD"
proxytype = "HTTP"

Khắc phục sự cố

Vấn đề Nguyên nhân Cách xử lý
ERROR_PROXY_NOT_AUTHORIZED Thông tin đăng nhập sai hoặc IP không được đưa vào danh sách trắng Xác minh thông tin xác thực proxy; danh sách trắng IP CaptchaAI
ERROR_PROXY_CONNECTION_FAILED Không thể truy cập proxy từ CaptchaAI Kiểm tra proxy có thể truy cập được từ IP bên ngoài
Mã thông báo bị mục tiêu từ chối IP proxy không khớp với IP tải trang Sử dụng cùng một phiên dính cho cả hai
Giải quyết chậm bằng proxy Proxy thêm độ trễ Chấp nhận hoặc sử dụng proxy nhanh hơn
ERROR_BAD_PARAMETERS Định dạng proxy sai Sử dụng định dạng host:port:user:pass

Câu hỏi thường gặp

Tôi có luôn cần phải chuyển proxy không?

Không. Hầu hết việc triển khai reCAPTCHA v2 không liên kết mã thông báo với IP. Chỉ chuyển proxy cho các thử thách giới hạn IP (Cloudflare, một số luồng OAuth).

Việc chuyển proxy có làm chậm quá trình giải quyết không?

Hơi — CaptchaAI cần định tuyến qua proxy của bạn. Thêm 2-5 giây vào thời gian giải quyết thông thường.

Tôi có thể sử dụng proxy luân phiên với tham số proxy của CaptchaAI không?

Sử dụng phiên dính. Nếu bạn chuyển proxy luân phiên, CaptchaAI có thể giải quyết từ một IP khác với IP đã tải trang.

Điều gì xảy ra nếu proxy của tôi bị lỗi?

CaptchaAI trả về ERROR_PROXY_CONNECTION_FAILED. Triển khai logic thử lại bằng proxy dự phòng.


Hướng dẫn liên quan


Chuyển proxy của bạn tới CaptchaAI để giải CAPTCHA khớp với IP —lấy khóa API của bạn.

Os comentários estão desativados para este artigo.