Come aggirare il captcha per automazione e test legittimi
Aggirare un captcha in modo legittimo significa far superare una sfida al tuo lavoro automatizzato senza violare le regole del sito né attaccarne gli utenti. In pratica copre quattro casi: automatizzare un flusso di lavoro di tua proprietà, testare il tuo sito, costruire strumenti accessibili e raccogliere dati pubblici a un ritmo responsabile. La via più rapida e onesta di solito è evitare del tutto che il captcha compaia. Quando non puoi evitarlo, un'API di risoluzione come Scarnox può restituire il token che la pagina si aspetta.
Questa guida presenta gli approcci nell'ordine in cui dovresti provarli, e segna i confini che non dovresti oltrepassare.
Inizia chiedendoti perché è comparso il captcha
I captcha sono un segnale. Il sito ha deciso che una richiesta sembrava automatizzata o rischiosa. Prima di provare a superare la sfida, verifica cosa l'ha causata:
- Frequenza delle richieste. Molti captcha compaiono solo dopo una raffica di richieste dallo stesso indirizzo.
- Stato di sessione mancante. Un visitatore che arriva senza cookie, senza storico e senza login sembra uno scraper.
- Segnali del browser. Browser headless e impostazioni di automazione predefinite vengono spesso segnalati. La guida al rilevamento dei browser headless spiega quelli più comuni.
- Reputazione della rete. Gli indirizzi dei datacenter sono controllati più delle connessioni domestiche.
Risolvere la causa spesso elimina del tutto il captcha, ed è meglio che risolverlo a ogni richiesta.
Prova gli approcci che evitano la sfida
- Usa un'API ufficiale, se esiste. Molti siti pubblicano i dati tramite un'API con chiavi e limiti propri. Quella strada è più veloce, più stabile e chiaramente consentita.
- Rallenta e distribuisci le richieste. Aggiungi ritardi tra le richieste, limita la concorrenza e fai un passo indietro quando ricevi un avviso. Un ritmo costante di poche richieste al minuto appare al sito molto diverso da una raffica di centinaia.
- Mantieni le sessioni. Riusa cookie e un profilo browser coerente per tutta la sessione, invece di ripartire da zero a ogni pagina. La guida al fingerprinting del browser spiega perché conta.
- Controlla robots.txt e i termini di servizio prima di iniziare, non dopo essere stato bloccato. Rispetta ciò che il sito chiede.
Usa chiavi di test e ambienti di test
Se il captcha blocca il tuo ambiente di staging, non indirizzare i test alla produzione per aggirarlo. La maggior parte dei provider di captcha, inclusi Google e Cloudflare, pubblica chiavi di test per lo sviluppo. Queste chiavi producono un token valido senza una vera sfida, e sono lo strumento giusto per i test automatici. Puoi anche chiedere al tuo team di disattivare il captcha sul server di staging. La guida ai captcha nei test automatici illustra questa configurazione.
Risolvi il captcha tramite API quando si presenta durante un lavoro legittimo
Alcuni captcha compariranno comunque durante un lavoro legittimo, anche con un buon ritmo. Un job di monitoraggio che controlla il portale del tuo fornitore è un esempio. In quel caso un'API di risoluzione è lo strumento appropriato.
Scarnox è un'API di risoluzione captcha. Oggi l'unico tipo di task attivo è PopularCaptcha, proxyless. Il tuo codice invia la sitekey e l'URL della pagina, e riceve un token da inviare con il form:
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
Il token scade in circa due minuti, quindi invialo subito. La guida per risolvere un captcha con Python contiene l'esempio completo. Altri tipi di captcha, tra cui reCAPTCHA, Cloudflare Turnstile e Arkose, sono in arrivo. Finché non saranno disponibili, non dare per scontato che un solver li gestisca.
Anche l'accessibilità è un motivo legittimo
I captcha sono un ostacolo per le persone che usano screen reader, cambiano dispositivo o hanno disabilità cognitive o visive. Se costruisci strumenti di accessibilità, o agisci per conto di utenti che non riescono a completare una sfida, il primo passo giusto è chiedere al proprietario del sito un'alternativa accessibile. Molti siti ne offrono una. Automatizzare un captcha non sostituisce questa conversazione.
Cosa non è legittimo
Alcuni usi della risoluzione dei captcha sono fuori dai limiti, qualunque sia la ragione dichiarata. Non usare solver o qualsiasi aggiramento per:
- credential stuffing o qualsiasi tentativo di accedere ad account che non ti appartengono;
- registrazioni spam, recensioni false o account falsi;
- acquisto di biglietti, scorte o beni limitati prima di altri clienti;
- attacchi a form di login, flussi di reimpostazione della password o limiti di frequenza di un servizio altrui.
Questi usi danneggiano persone reali, violano i termini dei siti ed espongono a seri rischi legali. Scarnox non li supporta, e questa guida non li tratta.
Scraping responsabile
Se il tuo aggiramento serve a raccogliere dati pubblici, tieni presenti questi punti:
- Controlla
robots.txte i termini del sito. Un sito che vieta lo scraping ti ha già detto cosa si aspetta. - Imposta un limite di frequenza ragionevole e fermati in caso di errori. Sovraccaricare un sito piccolo è un danno reale.
- Non raccogliere dati personali che non ti servono. I dati personali sono soggetti a leggi come il GDPR, e raccoglierli senza cura crea responsabilità. La guida su se il web scraping è legale spiega le principali considerazioni.
Riepilogo
Evita prima il captcha risolvendo la causa. Usa chiavi di test per i test. Usa un'API di risoluzione per i lavori legittimi che incontrano comunque una sfida, entro i tipi di task attivi. Resta fuori dagli usi elencati sopra e fai scraping a un ritmo che un sito possa sostenere.