Come aggirare Cloudflare Turnstile con Python#

logoNextCaptcha
March 26,2026

Cos'è Cloudflare Turnstile?#

Cloudflare Turnstile è un'alternativa intelligente ai CAPTCHA progettata per verificare gli utenti senza sfide intrusive. A differenza dei CAPTCHA tradizionali che richiedono la selezione di immagini o l'inserimento di testo, Turnstile esegue sfide invisibili nel browser per determinare se il visitatore è umano. È ampiamente adottato dai siti che utilizzano i servizi di Cloudflare e può rappresentare un ostacolo significativo per il web scraping e i flussi di lavoro automatizzati.

Prerequisiti#

Prima di iniziare, assicurati di avere Python 3.7 o superiore installato. Hai anche bisogno di una chiave API NextCaptcha — registrati su NextCaptcha per ottenere crediti di prova gratuiti. Poi installa l'SDK Python di NextCaptcha:
pip install nextcaptcha-python

Avvio rapido con l'SDK NextCaptcha#

Per prima cosa, crea un'istanza NextCaptchaAPI con la tua chiave API. Puoi trovare la tua chiave client nella dashboard di NextCaptcha:
from nextcaptcha import NextCaptchaAPI
 
api = NextCaptchaAPI(client_key="YOUR_CLIENT_KEY")
Quindi chiama il metodo turnstile con l'URL del sito target e la chiave del sito Turnstile. La chiave si trova nell'attributo data-sitekey del widget Turnstile sulla pagina target:
result = api.turnstile(
    website_url="https://example.com",
    website_key="0x4XXXXXXXXXXXXXXXXX"
)
 
if result["status"] == "ready":
    token = result["solution"]["token"]
    print(f"Turnstile token: {token}")

Esempio completo con gestione degli errori#

Ecco un esempio pronto per la produzione con gestione degli errori e supporto per le variabili d'ambiente:
import os
import sys
from nextcaptcha import NextCaptchaAPI
 
CLIENT_KEY = os.getenv("NEXTCAPTCHA_KEY", "YOUR_CLIENT_KEY")
WEBSITE_URL = "https://example.com"
WEBSITE_KEY = "0x4XXXXXXXXXXXXXXXXX"
 
api = NextCaptchaAPI(client_key=CLIENT_KEY)
 
try:
    result = api.turnstile(
        website_url=WEBSITE_URL,
        website_key=WEBSITE_KEY
    )
 
    if result["status"] == "ready":
        token = result["solution"]["token"]
        print(f"Turnstile solved successfully!")
        print(f"Token: {token[:50]}...")
    else:
        print(f"Failed to solve: {result.get('errorDescription', 'Unknown error')}")
        sys.exit(1)
 
except Exception as e:
    print(f"Error: {e}")
    sys.exit(1)

Utilizzo dell'API diretta (senza SDK)#

Se preferisci non usare l'SDK, puoi chiamare direttamente l'API NextCaptcha con la libreria requests. Questo approccio ti dà il pieno controllo sulle richieste HTTP:
import requests
import time
 
API_KEY = "YOUR_API_KEY"
WEBSITE_URL = "https://example.com"
WEBSITE_KEY = "0x4XXXXXXXXXXXXXXXXX"
 
# Step 1: Create task
response = requests.post("https://api.nextcaptcha.com/createTask", json={
    "clientKey": API_KEY,
    "task": {
        "type": "TurnstileTaskProxyless",
        "websiteURL": WEBSITE_URL,
        "websiteKey": WEBSITE_KEY
    }
})
 
data = response.json()
if data.get("errorId", 0) != 0:
    print(f"Error creating task: {data.get('errorDescription')}")
    exit()
 
task_id = data["taskId"]
print(f"Task created: {task_id}")
 
# Step 2: Poll for result
while True:
    time.sleep(3)
    result = requests.post("https://api.nextcaptcha.com/getTaskResult", json={
        "clientKey": API_KEY,
        "taskId": task_id
    }).json()
 
    if result["status"] == "ready":
        token = result["solution"]["token"]
        print(f"Solved! Token: {token[:50]}...")
        break
    elif result["status"] == "failed":
        print(f"Failed: {result.get('errorDescription')}")
        break
    else:
        print("Waiting for solution...")
Questo approccio richiede due chiamate API: createTask per inviare la sfida Turnstile, e getTaskResult per interrogare la soluzione. Si consiglia un intervallo di polling di 3 secondi per evitare limiti di frequenza.

Riepilogo#

In questa guida abbiamo trattato due metodi per aggirare Cloudflare Turnstile con Python: l'SDK NextCaptcha per un approccio semplice, e l'API diretta per il pieno controllo. NextCaptcha risolve automaticamente la sfida Turnstile e restituisce un token valido. Per maggiori dettagli, consulta i link qui sotto: