Khắc Phục Sự Cố

Lỗi và cách khắc phục thử thách Cloudflare

Việc giải Cloudflare Challenge phức tạp hơn các loại CAPTCHA khác vì nó yêu cầu kết hợp proxy, liên kết IP và tính nhất quán của tác nhân người dùng. Dưới đây là những lỗi phổ biến nhất và cách khắc phục từng lỗi.


Lỗi gửi API

ERROR_BAD_PARAMETERS

Lý do: Thiếu các thông số bắt buộc.

Khắc phục: Cloudflare Challenge yêu cầu các tham số sau:

method=cloudflare_challenge
pageurl=https://example.com
proxy=user:pass@host:port
proxytype=HTTP

Tất cả bốn đều là bắt buộc. Không giống như Turnstile hoặc reCAPTCHA, proxy là bắt buộc.

ERROR_PROXY_CONNECTION_FAILED

Lý do: CaptchaAI không thể kết nối thông qua proxy của bạn.

Sửa chữa:

  • Kiểm tra proxy độc lập: curl -x http://user:pass@host:port https://httpbin.org/ip
  • Đảm bảo proxy hỗ trợ HTTPS
  • Kiểm tra các yêu cầu về danh sách IP trắng trên nhà cung cấp proxy của bạn
  • Hãy thử một proxy khác từ cùng một nhà cung cấp

ERROR_PROXY_BANNED

Lý do: IP proxy của bạn bị Cloudflare chặn.

Sửa chữa:

  • Chuyển sang đa dạng nguồn yêu cầu hoặc ISP
  • IP của trung tâm dữ liệu bị Cloudflare gắn cờ rất nhiều
  • Chuyển sang IP mới và thử lại

ERROR_CAPTCHA_UNSOLVABLE

Lý do: Không thể giải quyết được thử thách ngay cả sau khi thử lại.

Sửa chữa:

  • Trang web có thể đã thay đổi cài đặt Cloudflare
  • Hãy thử một proxy khác (bản thân IP proxy có thể bị chặn)
  • Đợi 5 phút rồi thử lại — Cloudflare có thể đang ở chế độ bảo mật nâng cao
  • Xác minh URL trang vẫn hiển thị Cloudflare Challenge

Nguyên nhân: IP không khớp giữa cách giải quyết và cách sử dụng.

Khắc phục: Sử dụng proxy chính xác cho các yêu cầu tiếp theo:

# WRONG — different proxy for solving and requests
solve_proxy = "proxy1.example.com:8080"
request_proxy = "proxy2.example.com:8080"

# CORRECT — same proxy for both
proxy = "user:pass@proxy1.example.com:8080"

# Submit solve with this proxy
response = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": API_KEY,
    "method": "cloudflare_challenge",
    "pageurl": "https://example.com",
    "proxy": proxy,
    "proxytype": "HTTP",
    "json": 1
})

# Use the SAME proxy for page requests
session = requests.Session()
session.cookies.set("<staging-session-cookie>", solved_cookie)
session.proxies = {"https": f"http://{proxy}"}

Nguyên nhân: Tác nhân người dùng khác nhau giữa giải quyết và yêu cầu.

Khắc phục: Sử dụng tác nhân người dùng được trả về trong phản hồi giải quyết:

solution = result["request"]

# Extract and reuse the exact user agent
user_agent = solution.get("user_agent")

session = requests.Session()
session.headers["User-Agent"] = user_agent  # Must match exactly
session.cookies.set("<staging-session-cookie>", solution["<staging-session-cookie>"])

Lý do: <staging-session-cookie> có TTL giới hạn (thường là 15 phút – 24 giờ).

Sửa chữa:

  • Kiểm tra khi bạn nhận được cookie
  • Giải quyết lại trước khi TTL hết hạn
  • Triển khai tính năng tự động giải quyết lại khi bạn nhận được phản hồi từ trang thử thách
def make_request(url, session):
    response = session.get(url)
    if "challenge" in response.text.lower() or response.status_code == 403:
        # Cookie expired — re-solve
        new_cookie = solve_cloudflare_challenge(url, proxy)
        session.cookies.set("<staging-session-cookie>", new_cookie)
        response = session.get(url)
    return response

Lỗi hết thời gian chờ

Giải quyết mất quá nhiều thời gian (>5 phút)

Lý do: Các trang Cloudflare Challenge có thể bị chậm khi proxy chậm hoặc thử thách phức tạp.

Sửa chữa:

  • Sử dụng proxy nhanh hơn với độ trễ thấp hơn
  • Tăng thời gian chờ bỏ phiếu của bạn lên 60 lần thử (5 phút)
  • Kiểm tra xem trang web có thực sự có Cloudflare Challenge và một biện pháp bảo vệ khác không

CAPCHA_NOT_READY vẫn tồn tại

Lý do: Quá trình giải quyết vẫn đang được tiến hành.

Sửa chữa:

  • Cloudflare Challenge mất 20–60 giây, lâu hơn các loại khác
  • Thăm dò ý kiến cứ sau 5 giây với tối đa 60 lần thử
  • Nếu sau 5 phút vẫn chưa sẵn sàng, hãy hủy bỏ và thử lại bằng proxy khác

Những lỗi tích hợp thường gặp

sai lầm kết quả sửa chữa
Thiếu tham số proxy ERROR_BAD_PARAMETERS Luôn bao gồm proxy cho CF Challenge
Sử dụng proxy trung tâm dữ liệu ERROR_PROXY_BANNED Sử dụng đa dạng nguồn yêu cầu
UA khác nhau cho các yêu cầu Cookie bị từ chối Tái sử dụng UA từ giải pháp
IP khác nhau cho các yêu cầu Cookie bị từ chối Sử dụng cùng một proxy cho tất cả các yêu cầu
Không thiết lập tên miền cookie Cookie không được gửi Đặt tên miền thành .example.com (có tiền tố dấu chấm)
Sử dụng HTTP thay vì HTTPS Kết nối không thành công Cloudflare yêu cầu HTTPS

Danh sách kiểm tra gỡ lỗi

  1. ✅ Trang này có thực sự đứng sau Cloudflare Challenge không? (không phải Turnstile hoặc reCAPTCHA)
  2. ✅ Đã bao gồm đầy đủ các thông số cần thiết chưa? (phương thức, pageurl, proxy, proxytype)
  3. ✅ Proxy có hoạt động không? Thử nghiệm với curl
  4. ✅ Proxy là khu dân cư hay ISP? (IP của trung tâm dữ liệu bị cấm)
  5. ✅ Bạn có đang sử dụng cùng một proxy để giải quyết các yêu cầu VÀ không?
  6. ✅ Bạn có đang sử dụng tác nhân người dùng được trả lại cho các yêu cầu không?
  7. ✅ Cookie có được đặt trên đúng tên miền không?
  8. ✅ Cookie có còn nằm trong TTL không?

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

Tại sao cần có proxy cho Cloudflare Challenge nhưng không phải cho reCAPTCHA?

Cloudflare liên kết cookie <staging-session-cookie> với địa chỉ IP. Việc giải quyết phải diễn ra từ cùng một IP mà bạn sẽ sử dụng cho các yêu cầu tiếp theo. Mã thông báo reCAPTCHA không bị giới hạn IP.

Tôi có thể sử dụng proxy SOCKS5 không?

Vâng. Đặt proxytype=SOCKS5 và định dạng proxy là user:pass@host:port.

Thực hiện yêu cầu với cookie. Nếu bạn nhận được phản hồi 200 với nội dung trang thì nó hợp lệ. Nếu bạn nhận được thông báo 403 hoặc thấy "Đang kiểm tra trình duyệt của bạn" thì cookie đã hết hạn.

Tại sao tôi liên tục nhận được ERROR_CAPTCHA_UNSOLVABLE?

Điều này thường có nghĩa là IP proxy bị Cloudflare gắn cờ rất nhiều. Chuyển sang IP dân cư mới. Nếu lỗi vẫn tiếp diễn trên nhiều IP mới, trang web có thể có cài đặt Cloudflare cực kỳ nghiêm ngặt.


Hướng dẫn liên quan

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