Giải quyết vấn đề thời gian. Sự khác biệt 10 giây cho mỗi lần giải quyết sẽ tạo thành độ trễ hàng giờ đối với hàng nghìn tác vụ. Hướng dẫn này cung cấp các điểm chuẩn có thể lặp lại cho mọi loại CAPTCHACaptchaAIhỗ trợ, cộng với các tập lệnh để chạy các phép đo của riêng bạn.
Thời gian giải quyết điển hình
Các điểm chuẩn này phản ánh thời gian trung bình từ 100 lần giải liên tiếp cho mỗi loại, được đo từ khi gửi API đến khi truy xuất kết quả:
| Loại CAPTCHA | Giải trung bình | P90 Giải quyết | P99 Giải | Tỷ lệ thành công |
|---|---|---|---|---|
| reCAPTCHA v2 | 12–18 giây | 25 giây | 40 giây | giá trị tham khảo cho mẫu nội bộ |
| reCAPTCHA v2 Vô hình | 10–15 giây | 20 giây | 35 giây | giá trị tham khảo cho mẫu nội bộ |
| reCAPTCHA v3 | 8–12 giây | 18 giây | 30 giây | 90%+ |
| reCAPTCHA doanh nghiệp | 15–25 giây | 35 giây | 50 giây | 90%+ |
| Cloudflare Turnstile | 5–10 giây | 15 giây | 25 giây | 99%+ |
| GeeTest v3 | 10–18 giây | 25 giây | 40 giây | 90%+ |
| Hình ảnh/OCR | 3–8 giây | 12 giây | 20 giây | 85%+ |
| BLS CAPTCHA | 5–10 giây | 15 giây | 20 giây | 100% |
Thời gian thay đổi tùy theo chất lượng proxy, tải máy chủ và độ phức tạp của CAPTCHA.
Các yếu tố ảnh hưởng đến thời gian giải quyết
Độ trễ mạng
Khoảng cách của bạn với các điểm cuối API của CaptchaAI sẽ tăng thêm thời gian khứ hồi. RTT 200 mili giây tổng cộng ~1 giây (gửi + 3–4 cuộc thăm dò × 200 mili giây).
Chất lượng proxy
Khi sử dụng proxy, đa dạng nguồn yêu cầu thường tạo ra khả năng giải quyết nhanh hơn proxy trung tâm dữ liệu vì chúng gây ra ít thách thức phụ hơn.
Độ phức tạp của CAPTCHA
Các thử thách hình ảnh reCAPTCHA v2 có độ khó khác nhau. Thử thách "chọn đèn giao thông" với hình ảnh mờ dần sẽ mất nhiều thời gian hơn so với việc xác minh hộp kiểm đơn giản.
Chiến lược bỏ phiếu
Thăm dò tích cực (2 giây một lần) phát hiện kết quả nhanh hơn nhưng tăng số lần gọi API. Bỏ phiếu thận trọng (cứ sau 10 giây) giúp giảm tải nhưng tăng thêm độ trễ.
Tập lệnh điểm chuẩn Python
# benchmark_captchaai.py
import os
import time
import statistics
import requests
API_KEY = os.environ.get("CAPTCHAAI_KEY", "YOUR_API_KEY")
def benchmark_solve(method, params, runs=10):
"""Benchmark a CAPTCHA type over multiple runs."""
times = []
successes = 0
for i in range(runs):
start = time.time()
# Submit
submit_params = {"key": API_KEY, "json": "1", **params}
resp = requests.get("https://ocr.captchaai.com/in.php",
params=submit_params)
result = resp.json()
if result.get("status") != 1:
print(f" Run {i+1}: Submit failed - {result.get('request')}")
continue
task_id = result["request"]
# Poll
time.sleep(10)
solved = False
for _ in range(30):
poll = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get",
"id": task_id, "json": "1",
})
poll_result = poll.json()
if poll_result.get("status") == 1:
elapsed = time.time() - start
times.append(elapsed)
successes += 1
solved = True
print(f" Run {i+1}: {elapsed:.1f}s")
break
if poll_result.get("request") != "CAPCHA_NOT_READY":
print(f" Run {i+1}: Error - {poll_result.get('request')}")
break
time.sleep(5)
if not solved and poll_result.get("request") == "CAPCHA_NOT_READY":
print(f" Run {i+1}: Timeout")
if times:
return {
"runs": runs,
"successes": successes,
"success_rate": f"{successes/runs*100:.0f}%",
"median": f"{statistics.median(times):.1f}s",
"p90": f"{sorted(times)[int(len(times)*0.9)]:.1f}s" if len(times) >= 10 else "N/A",
"min": f"{min(times):.1f}s",
"max": f"{max(times):.1f}s",
}
return {"error": "No successful solves"}
# Benchmark reCAPTCHA v2
print("=== reCAPTCHA v2 ===")
recaptcha_v2 = benchmark_solve("userrecaptcha", {
"method": "userrecaptcha",
"googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
"pageurl": "https://www.google.com/recaptcha/api2/demo",
})
print(recaptcha_v2)
# Benchmark Image/OCR
print("\n=== Image CAPTCHA ===")
# Submit a base64-encoded test image
import base64
# Use a test image for benchmarking
image_result = benchmark_solve("post", {
"method": "base64",
"body": "BASE64_ENCODED_CAPTCHA_IMAGE",
})
print(image_result)
Tập lệnh điểm chuẩn JavaScript
// benchmark_captchaai.js
const axios = require('axios');
const API_KEY = process.env.CAPTCHAAI_KEY || 'YOUR_API_KEY';
async function benchmarkSolve(params, runs = 10) {
const times = [];
let successes = 0;
for (let i = 0; i < runs; i++) {
const start = Date.now();
// Submit
const submit = await axios.get('https://ocr.captchaai.com/in.php', {
params: { key: API_KEY, json: '1', ...params },
});
if (submit.data.status !== 1) {
console.log(` Run ${i + 1}: Submit failed - ${submit.data.request}`);
continue;
}
// Poll
await new Promise(r => setTimeout(r, 10000));
let solved = false;
for (let j = 0; j < 30; j++) {
const poll = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: API_KEY, action: 'get', id: submit.data.request, json: '1' },
});
if (poll.data.status === 1) {
const elapsed = (Date.now() - start) / 1000;
times.push(elapsed);
successes++;
solved = true;
console.log(` Run ${i + 1}: ${elapsed.toFixed(1)}s`);
break;
}
if (poll.data.request !== 'CAPCHA_NOT_READY') {
console.log(` Run ${i + 1}: Error - ${poll.data.request}`);
break;
}
await new Promise(r => setTimeout(r, 5000));
}
if (!solved) console.log(` Run ${i + 1}: Timeout`);
}
if (times.length === 0) return { error: 'No successful solves' };
times.sort((a, b) => a - b);
return {
runs, successes,
successRate: `${((successes / runs) * 100).toFixed(0)}%`,
median: `${times[Math.floor(times.length / 2)].toFixed(1)}s`,
min: `${times[0].toFixed(1)}s`,
max: `${times[times.length - 1].toFixed(1)}s`,
};
}
(async () => {
console.log('=== reCAPTCHA v2 ===');
const v2 = await benchmarkSolve({
method: 'userrecaptcha',
googlekey: '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-',
pageurl: 'https://www.google.com/recaptcha/api2/demo',
});
console.log(v2);
console.log('\n=== Cloudflare Turnstile ===');
const turnstile = await benchmarkSolve({
method: 'turnstile',
sitekey: 'YOUR_TURNSTILE_SITEKEY',
pageurl: 'https://example.com',
});
console.log(turnstile);
})();
Giải thích kết quả
Trung bình so với P90
- Trung vị — Trải nghiệm điển hình. Sử dụng điều này để lập kế hoạch năng lực.
- P90 — "Trường hợp xấu nhất" đối với 9 trên 10 lượt giải. Sử dụng điều này để cài đặt thời gian chờ.
- P99 — Vỏ true edge. Đặt thời gian chờ tối đa của bạn cao hơn mức này.
Khoảng thời gian bỏ phiếu tối ưu
Dựa trên các điểm chuẩn ở trên, hãy định cấu hình bỏ phiếu cho mỗi loại CAPTCHA:
| Loại CAPTCHA | Chờ ban đầu | Khoảng thời gian thăm dò ý kiến | Số lần thử tối đa |
|---|---|---|---|
| Hình ảnh/OCR | 5 giây | 3 giây | 15 |
| Cloudflare Turnstile | 5 giây | 3 giây | 15 |
| BLS CAPTCHA | 5 giây | 3 giây | 15 |
| reCAPTCHA v2 | 15 giây | 5 giây | 20 |
| reCAPTCHA v3 | 10 giây | 5 giây | 20 |
| GeeTest v3 | 12 giây | 5 giây | 20 |
| reCAPTCHA doanh nghiệp | 15 giây | 5 giây | 25 |
Khắc phục sự cố
| Vấn đề | Nguyên nhân | Cách xử lý |
|---|---|---|
| Giải quyết lần cao hơn so với liệt kê | Sự cố về độ trễ mạng hoặc proxy | Kiểm tra từ khu vực gần máy chủ CaptchaAI hơn |
| Kết quả không nhất quán giữa các lần chạy | Biến thể độ khó CAPTCHA | Tăng cỡ mẫu lên hơn 50 lần chạy |
| Nhiều thời gian chờ | URL trang hoặc khóa trang không hợp lệ | Xác minh các thông số bằng một lần kiểm tra thủ công |
ERROR_ZERO_BALANCE trong quá trình chuẩn |
Không đủ cân bằng cho tất cả các lần chạy | Nạp tiền trước khi chạy benchmark lớn |
Câu hỏi thường gặp
Thời gian giải quyết có thay đổi theo thời gian trong ngày không?
Vâng. Giờ cao điểm (giờ làm việc tại Hoa Kỳ) có thể hiển thị thời gian giải quyết lâu hơn một chút do nhu cầu cao hơn. Chạy điểm chuẩn vào những thời điểm khác nhau để có được bức tranh hoàn chỉnh.
Tôi có nên sử dụng dữ liệu này cho cài đặt thời gian chờ sản xuất không?
Sử dụng giá trị P90 cho thời gian chờ tiêu chuẩn và P99 cho thời gian chờ tối đa. Thêm bộ đệm 20% để tính đến sự biến đổi của mạng.
Cài đặt proxy ảnh hưởng đến thời gian giải quyết như thế nào?
Nếu bạn cung cấp proxy, CaptchaAI sẽ định tuyến giải quyết thông qua proxy đó. Proxy chậm hoặc ở xa có thể thêm 5–15 giây vào tổng thời gian giải quyết. Để đo điểm chuẩn, hãy kiểm tra có và không có proxy riêng biệt.
bài viết liên quan
Các bước tiếp theo
Chạy tập lệnh chuẩn đối với tài khoản của chính bạn và mục tiêu CAPTCHA —lấy khóa API CaptchaAI của bạn.
Hướng dẫn liên quan:
- Tối ưu hóa tốc độ và chi phí
- Tối ưu hóa độ trễ CaptchaAI
- Giải quyết CAPTCHA song song