TurnstileTask#


Cloudflare 403 koruma sayfalarını atlamak için proxy tabanlı çözüm yöntemi.
403 Forbidden hataları döndüren Cloudflare korumalı sayfalara erişmek için kullanılabilecek bir cf_clearance çerezi ve eşleşen user-agent dizesi döndürür.
Fiyat: $1.0/K

TurnstileTask Görev nesnesi yapısı#

isimtipGerekliTanım
typeStringEvetTurnstileTask
websiteURLStringEvetCloudflare 403 koruma sayfasının tam URL'si
htmlPageBase64StringHAYIR403 sayfasının tam HTML içeriğinin Base64 kodlaması. İsteğe bağlı - sağlanmazsa, sistem sayfayı proxy'niz aracılığıyla otomatik olarak alır (Otomatik Alma modu).
proxyTypeStringEvetProxy türü: "http", "socks4", "socks5"
proxyAddressStringEvetProxy sunucusu IP adresi veya ana bilgisayar adı
proxyPortIntegerEvetproxy bağlantı noktası
proxyLoginStringHAYIRTemsilci girişi
proxyPasswordStringHAYIRTemsilci şifresi

Mod 1: Otomatik Alma#

htmlPageBase64 sağlanmadığında, sistem 403 sayfasını proxy'niz aracılığıyla otomatik olarak alır. Hedef web sitesi ziyaretçinin IP adresine bakılmaksızın her zaman 403 sayfası döndürüyorsa bu modu kullanın.

Mod 2: Manuel HTML Gönderimi#

htmlPageBase64 sağlandığında, 403 sayfasının HTML içeriğini yakalayın, base64'e kodlayın ve istekte gönderin. Hedef web sitesi yalnızca belirli IP adresleri için 403 sayfası gösteriyorsa bu modu kullanın.

Örnek talep#

API uç noktası: https://api.nextcaptcha.com/createTask

yöntem: POST

İçerik türü: application/json

Mod 1: Otomatik Alma#

{
    "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"
    }
}

Mod 2: Manuel HTML Gönderimi#

{
    "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"
    }
}

Cevap örneğ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
}

Önemli: cf_clearance çerezi, hedef web sitesine erişmek için çerezi kullanırken HEPSİ eşleşmesi gereken üç faktöre bağlıdır:

  • TLS Parmak İzi: Windows Chrome sürüm 136 veya daha yeni bir TLS parmak izi kullanmanız gerekir.
  • IP Adresi: Çözüm sırasında kullanılan aynı proxy IP adresini kullanmanız gerekir.
  • User-Agent: Çözüm yanıtında döndürülen tam user-agent dizesini kullanmanız gerekir.
Bu üç faktörden (TLS parmak izi, IP adresi, User-Agent) herhangi biri eşleşmezse, hedef web sitesi hâlâ 403 Forbidden hatası döndürecektir.

Örnek Kod#

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}")

İlgili Bağlantılar#