Bạn đã giải được Cloudflare Challenge thông qua CaptchaAI, nhận được cookie <staging-session-cookie>, đặt nó trong phiên của bạn — và trang thử thách sẽ xuất hiện trở lại. Vòng lặp này xảy ra khi cookie không khớp với bối cảnh phiên. Dưới đây là mọi nguyên nhân và cách khắc phục.
Cách hoạt động của
Khi CaptchaAI giải được Cloudflare Challenge, nó sẽ trả về cookie <staging-session-cookie>. Cookie này bị ràng buộc với:
- IP proxy được sử dụng trong quá trình giải quyết
- Tác nhân người dùng được sử dụng trong quá trình giải
- Tên miền của trang web mục tiêu
Nếu bất kỳ điều nào trong số này khác nhau giữa việc giải quyết và yêu cầu tiếp theo của bạn, Cloudflare sẽ từ chối cookie và hiển thị lại thử thách.
Nguyên nhân 1: Tác nhân người dùng không khớp
Nguyên nhân phổ biến nhất. Tác nhân người dùng bạn gửi tới CaptchaAI phải khớp chính xác với Tác nhân người dùng trong yêu cầu của bạn.
import requests
USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
# Step 1: Solve with the SAME User-Agent
solve_data = {
"key": "YOUR_API_KEY",
"method": "cloudflare_challenge",
"pageurl": "https://example.com",
"proxy": "host:port:user:pass",
"proxytype": "HTTP",
"userAgent": USER_AGENT, # Must match step 2
"json": 1
}
submit = requests.post("https://ocr.captchaai.com/in.php", data=solve_data).json()
# ... poll for result ...
# Step 2: Use the SAME User-Agent in subsequent requests
session = requests.Session()
session.headers["User-Agent"] = USER_AGENT # Must match step 1
session.cookies.set("<staging-session-cookie>", cf_clearance_value, domain=".example.com")
resp = session.get("https://example.com")
Nguyên nhân 2: IP proxy không khớp
Cookie <staging-session-cookie> được liên kết với IP đã giải quyết được thử thách. Nếu bạn yêu cầu trang web từ một IP khác, cookie sẽ bị từ chối.
PROXY = "host:port:user:pass"
# Solve with this proxy
solve_data = {
"key": "YOUR_API_KEY",
"method": "cloudflare_challenge",
"pageurl": "https://example.com",
"proxy": PROXY,
"proxytype": "HTTP",
"userAgent": USER_AGENT,
"json": 1
}
# Use the SAME proxy for subsequent requests
session.proxies = {
"http": f"http://user:pass@host:port",
"https": f"http://user:pass@host:port"
}
Quan trọng: Nếu bạn sử dụng proxy luân phiên, hãy ghim vào một phiên cố định. IP phải giữ nguyên giữa việc giải và duyệt.
Nguyên nhân 3: Cookie không được đặt chính xác
Cookie <staging-session-cookie> phải được đặt trên đúng tên miền với các thuộc tính phù hợp.
# WRONG — setting on wrong domain
session.cookies.set("<staging-session-cookie>", value, domain="example.com")
# CORRECT — include the dot prefix for subdomain coverage
session.cookies.set("<staging-session-cookie>", value, domain=".example.com")
# Or set all cookies returned by CaptchaAI
for cookie_str in result.get("cookies", "").split(";"):
if "<staging-session-cookie>" in cookie_str:
name, val = cookie_str.strip().split("=", 1)
session.cookies.set(name.strip(), val.strip(), domain=".example.com")
Nguyên nhân 4: Cookie hết hạn
Cookie <staging-session-cookie> có thời gian tồn tại giới hạn — thường là 15–30 phút. Sau khi hết hạn, Cloudflare lại thể hiện thử thách.
Khắc phục: Theo dõi tuổi của cookie và giải quyết lại trước khi hết hạn.
import time
last_solve_time = None
COOKIE_TTL = 900 # 15 minutes
def get_cf_clearance():
global last_solve_time
if last_solve_time and (time.time() - last_solve_time) < COOKIE_TTL:
return # Cookie still valid
# Solve again
<staging-session-cookie> = solve_cloudflare_challenge()
session.cookies.set("<staging-session-cookie>", <staging-session-cookie>, domain=".example.com")
last_solve_time = time.time()
Nguyên nhân 5: Dấu vân tay TLS không khớp
Cloudflare kiểm tra dấu vân tay TLS. Thư viện requests của Python có dấu vân tay TLS khác với Chrome. Một số trang web từ chối yêu cầu ngay cả với <staging-session-cookie> hợp lệ nếu dấu vân tay TLS không khớp.
Khắc phục: Sử dụng curl_cffi hoặc tls-client cho dấu vân tay TLS giống trình duyệt.
pip install curl_cffi
from curl_cffi import requests as curl_requests
session = curl_requests.Session(impersonate="chrome120")
session.cookies.set("<staging-session-cookie>", value, domain=".example.com")
resp = session.get("https://example.com")
Danh sách kiểm tra gỡ lỗi
Challenge keeps repeating
↓
User-Agent in solve request matches browsing request? → No → Sync User-Agent
↓ Yes
Same proxy IP for solve and browse? → No → Pin proxy IP (sticky session)
↓ Yes
Cookie set on correct domain (.example.com)? → No → Fix domain
↓ Yes
Cookie less than 15 minutes old? → No → Re-solve the challenge
↓ Yes
TLS fingerprint matches a browser? → No → Use curl_cffi or tls-client
↓ Yes
Site may have additional bot detection → Use headless browser instead
Câu hỏi thường gặp
Cookie tồn tại trong bao lâu?
Thông thường là 15–30 phút. Một số trang web đặt thời lượng ngắn hơn. Chủ động giải quyết lại trước khi hết hạn.
Tôi có cần phiên bản Chrome cụ thể trong Tác nhân người dùng không?
Sử dụng Tác nhân người dùng thực tế, hiện tại. Tác nhân người dùng lỗi thời kích hoạt kiểm tra Cloudflare mạnh mẽ hơn.
Tôi có thể sử dụng lại cookie trên các trang khác nhau không?
Có, miễn là chúng nằm trên cùng một miền và bạn sử dụng cùng IP và Tác nhân người dùng.
Giải Cloudflare Challenge bằng CaptchaAI
Phá vỡ vòng thử thách tạicaptchaai.com.
Hướng dẫn liên quan
- Cách giải Cloudflare Challenge bằng API
- Cloudflare Challenge vs Turnstile: Cách phát hiện
- Tính bền vững của phiên trình duyệt cho quy trình làm việc CAPTCHA
- Các phương pháp hay nhất về thiết lập proxy