TurnstileTask#


Phương pháp giải quyết dựa trên proxy để vượt qua các trang bảo vệ 403 của Cloudflare.
Trả về cookie cf_clearance và chuỗi user-agent tương ứng có thể được sử dụng để truy cập các trang được Cloudflare bảo vệ trả về lỗi 403 Forbidden.
Giá: $1.0/K

TurnstileTask Cấu trúc đối tượng nhiệm vụ#

tênkiểuYêu cầuSự miêu tả
typeStringĐúngTurnstileTask
websiteURLStringĐúngURL đầy đủ của trang bảo vệ 403 của Cloudflare
htmlPageBase64StringKHÔNGNội dung HTML đầy đủ của trang 403 được mã hóa Base64. Tùy chọn - nếu không cung cấp, hệ thống sẽ tự động lấy trang thông qua proxy của bạn (Chế độ tự động lấy).
proxyTypeStringĐúngLoại proxy: `http`, `socks4`, `socks5`
proxyAddressStringĐúngĐịa chỉ IP hoặc tên máy chủ proxy
proxyPortIntegerĐúngcổng giao thức
proxyLoginStringKHÔNGĐăng nhập đại lý
proxyPasswordStringKHÔNGMật khẩu đại lý

Chế độ 1: Tự động lấy#

Khi htmlPageBase64 không được cung cấp, hệ thống tự động lấy trang 403 thông qua proxy của bạn. Sử dụng chế độ này khi trang web mục tiêu luôn trả về trang 403 bất kể địa chỉ IP của khách truy cập.

Chế độ 2: Gửi HTML thủ công#

Khi htmlPageBase64 được cung cấp, bạn chụp nội dung HTML của trang 403, mã hóa thành base64 và gửi trong yêu cầu. Sử dụng chế độ này khi trang web mục tiêu chỉ hiển thị trang 403 cho một số địa chỉ IP nhất định.

Yêu cầu ví dụ#

Điểm cuối API: https://api.nextcaptcha.com/createTask

phương pháp: POST

Loại nội dung: application/json

Chế độ 1: Tự động lấy#

{
    "clientKey":"api key",
    "task": {
        "type":"TurnstileTask",
        "websiteURL":"https://example.com",
        "proxyType":"http",
        "proxyAddress":"your_proxy_address",
        "proxyPort":1234,
        "proxyLogin":"your_proxy_login",
        "proxyPassword":"your_proxy_password"
    }
}

Chế độ 2: Gửi HTML thủ công#

{
    "clientKey":"api key",
    "task": {
        "type":"TurnstileTask",
        "websiteURL":"https://example.com",
        "htmlPageBase64":"PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+...",
        "proxyType":"http",
        "proxyAddress":"your_proxy_address",
        "proxyPort":1234,
        "proxyLogin":"your_proxy_login",
        "proxyPassword":"your_proxy_password"
    }
}

Ví dụ phản hồi#

{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "cf_clearance": "abc123def456...",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
  },
  "createTime": 1701234567890,
  "endTime": 1701234567890
}

Quan trọng: Cookie cf_clearance được ràng buộc với ba yếu tố phải TẤT CẢ khớp khi bạn sử dụng cookie để truy cập trang web mục tiêu:

  • Dấu vân tay TLS: Bạn phải sử dụng dấu vân tay TLS của Windows Chrome phiên bản 136 trở lên.
  • Địa chỉ IP: Bạn phải sử dụng cùng địa chỉ IP proxy đã được sử dụng trong quá trình giải quyết.
  • User-Agent: Bạn phải sử dụng chính xác chuỗi user-agent được trả về trong phản hồi giải pháp.
Nếu bất kỳ yếu tố nào trong ba yếu tố này (dấu vân tay TLS, địa chỉ IP, User-Agent) không khớp, trang web mục tiêu vẫn sẽ trả về lỗi 403 Forbidden.

Mã mẫu#

import requests
import time
 
CLIENT_KEY = "YOUR_CLIENT_KEY"
WEBSITE_URL = "https://example.com"
PROXY_TYPE = "http"
PROXY_ADDRESS = "your_proxy_address"
PROXY_PORT = 1234
PROXY_LOGIN = "your_proxy_login"
PROXY_PASSWORD = "your_proxy_password"
 
# Step 1: Create task
# Auto Fetch Mode (without htmlPageBase64)
# For sites that always return 403 regardless of IP
task_data = {
    "clientKey": CLIENT_KEY,
    "task": {
        "type": "TurnstileTask",
        "websiteURL": WEBSITE_URL,
        "proxyType": PROXY_TYPE,
        "proxyAddress": PROXY_ADDRESS,
        "proxyPort": PROXY_PORT,
        "proxyLogin": PROXY_LOGIN,
        "proxyPassword": PROXY_PASSWORD
    }
}
 
# Manual Mode: add htmlPageBase64 to the task
# For sites that only return 403 for certain IPs
# task_data["task"]["htmlPageBase64"] = "PCFET0NUWVBFIGh0bWw+..."
 
response = requests.post(
    "https://api.nextcaptcha.com/createTask",
    json=task_data
)
result = response.json()
task_id = result["taskId"]
 
# Step 2: Poll for result
while True:
    time.sleep(3)
    response = requests.post(
        "https://api.nextcaptcha.com/getTaskResult",
        json={
            "clientKey": CLIENT_KEY,
            "taskId": task_id
        }
    )
    result = response.json()
    if result["status"] == "ready":
        cf_clearance = result["solution"]["cf_clearance"]
        user_agent = result["solution"]["userAagent"]
        print(f"cf_clearance: {cf_clearance}")
        print(f"userAagent: {userAgent}")
        break
    elif result["status"] == "failed":
        print(f"Task failed: {result.get('errorDescription')}")
        break
 
# Step 3: Use the cookie with matching TLS, IP, and User-Agent
# IMPORTANT: TLS fingerprint must be Chrome 136+
# IMPORTANT: Must use the same proxy IP and returned user-agent
session = requests.Session()
session.cookies.set("cf_clearance", cf_clearance, domain=".example.com")
session.headers.update({"User-Agent": user_agent})
session.proxies = {
    "https": f"http://{PROXY_LOGIN}:{PROXY_PASSWORD}@{PROXY_ADDRESS}:{PROXY_PORT}"
}
response = session.get(WEBSITE_URL)
print(f"Status: {response.status_code}")

Liên kết liên quan#