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
- Proxy SOCKS5 + CaptchaAI
- Chất lượng proxy ảnh hưởng đến tỷ lệ giải quyết
- Dữ liệu sáng + CaptchaAI
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.