Come bypassare i CAPTCHA durante lo scraping del web? - 5 semplici passi

Come fare, Scraping, Mar-06-20245 minuti di lettura

Quando si scrappano dati da siti web su larga scala, è molto probabile che non si debba affrontare un CAPTCHA per dimostrare di essere un essere umano. In qualità di web scraper, forse sapete già perché i professionisti della cybersicurezza sono stati costretti a inventarli. Erano il risultato dei bot che automatizzavano le infinite richieste di accesso ai siti web.

Quando si scrappano dati da siti web su larga scala, è molto probabile che non si debba affrontare un CAPTCHA per dimostrare di essere un essere umano. In qualità di web scraper, forse sapete già perché i professionisti della cybersicurezza sono stati costretti a inventarli. Erano il risultato dei bot che automatizzavano le infinite richieste di accesso ai siti web. Così anche gli utenti autentici hanno dovuto affrontare i CAPTCHA, che appaiono in diverse forme. Tuttavia, è possibile aggirare i CAPTCHA, sia che si tratti di un web scraper sia che non lo si faccia, e questo è l'obiettivo di questo articolo. Ma prima di tutto, vediamo cosa sono i CAPTCHA.

Bypassare il CAPTCHA per lo scraping del web

I CAPTCHA vengono solitamente attivati per rilevare il traffico innaturale nel sito. Per aggirare questa restrizione, gli utenti preferiscono una soluzione che possa decifrare i codici CAPTCHA e accedere al sito web come un vero essere umano. Una soluzione per bypassare i captchas è Capsolver. L'utilizzo di proxy con le richieste web aiuterà anche gli utenti ad apparire come un traffico naturale. 

Che cos'è un CAPTCHA?

CAPTCHA è l'acronimo di Completely Automated Public Turing Test to tell Computers and Humans Apart. È un acronimo piuttosto lungo, vero? Ora vi starete chiedendo cosa significhi l'ultima parte di questo acronimo, Turing Test: si tratta di un semplice test per determinare se un umano o un bot sta interagendo con una pagina web o un server web.

Dopo tutto, un CAPTCHA distingue gli esseri umani dai bot, aiutando gli analisti della sicurezza informatica a salvaguardare i server web da attacchi brute force, DDoS e, in alcune situazioni, dal web scraping. 

Scopriamo come i CAPTCHA differenziano gli esseri umani dai bot.

Come funzionano i CAPTCHA?

I CAPTCHA si trovano nei moduli di un sito web, compresi i moduli di contatto, registrazione, commenti, iscrizione o check-out.

I CAPTCHA tradizionali includono un'immagine con lettere, numeri o entrambi allungati o sfocati in un riquadro con un colore di sfondo o uno sfondo trasparente. L'utente deve quindi identificare i caratteri e digitarli nel campo di testo che segue. Questo processo di identificazione dei caratteri è più semplice per gli esseri umani, ma piuttosto complicato per un bot.

L'idea di sfocare o distorcere il testo del CAPTCHA è di rendere più difficile al bot l'identificazione dei caratteri. Al contrario, gli esseri umani sono in grado di interpretare e intercettare i caratteri in vari formati, come font diversi, scrittura a mano, ecc. Detto questo, non tutti gli esseri umani riescono a risolvere un CAPTCHA al primo tentativo. Secondo una ricerca, l'8% degli utenti sbaglia a digitare al primo tentativo, mentre il 29% fallisce se i CAPTCHA sono sensibili alle maiuscole.

D'altra parte, alcuni bot avanzati sono in grado di intercettare le lettere distorte con l'aiuto dell'apprendimento automatico nel corso degli anni. Di conseguenza, alcune aziende come Google hanno sostituito i CAPTCHA convenzionali con CAPTCHA sofisticati. Un esempio è ReCAPTCHA, che scoprirete nella prossima sezione.

Che cos'è un ReCAPTCHA?

ReCAPTCHA è un servizio gratuito offerto da Google. Chiede agli utenti di spuntare delle caselle piuttosto che digitare del testo, risolvere dei puzzle o delle equazioni matematiche.

Un tipico ReCAPTCHA è più avanzato delle forme convenzionali di CAPTCHA. Utilizza immagini e testi reali, come i semafori delle strade, testi di vecchi giornali e libri stampati. Di conseguenza, gli utenti non devono affidarsi ai CAPTCHA della vecchia scuola con testo sfocato e distorto.

Come funzionano i ReCAPTCHA?

Esistono tre tipi significativi di test ReCAPTCHA per verificare se siete un essere umano o meno:

Casella di controllo

Si tratta dei ReCAPTCHA che chiedono agli utenti di spuntare una casella di controllo, "Non sono un robot", come nell'immagine precedente. Sebbene a occhio nudo possa sembrare che anche un bot possa completare questo test, vengono presi in considerazione diversi fattori:

  • Questo test analizza i movimenti del mouse dell'utente mentre si avvicina alla casella di controllo.
  • I movimenti del mouse dell'utente non sono rettilinei, compresa la maggior parte dei movimenti diretti del mouse. Per un bot è difficile imitare lo stesso comportamento.
  • Infine, il ReCAPTCHA ispeziona i cookie memorizzati dal browser.

Se il ReCAPTCHA non riesce a verificare che siete un essere umano, vi presenterà un'altra sfida.

Riconoscimento delle immagini

Questi ReCAPTCHA forniscono agli utenti nove o sedici immagini quadrate, come si può vedere nell'immagine precedente. Ogni quadrato rappresenta una parte di un'immagine più grande o immagini diverse. L'utente deve selezionare i quadrati che rappresentano oggetti specifici, animali, alberi, veicoli o semafori.

Se la selezione dell'utente corrisponde a quella di altri utenti che hanno eseguito lo stesso test, l'utente viene verificato. In caso contrario, il ReCAPTCHA presenterà un test più impegnativo.

Nessuna interazione

Sapevate che ReCAPTCHA è in grado di verificare se siete un essere umano o meno senza utilizzare caselle di controllo o qualsiasi interazione con l'utente?

Sicuramente lo fa prendendo in considerazione la cronologia delle interazioni dell'utente con i siti web e il comportamento generale dell'utente online. Nella maggior parte degli scenari, sulla base di questi fattori, il sistema è in grado di determinare se l'utente è un bot.

In caso contrario, si tornerebbe a uno dei due metodi precedentemente menzionati.

Cosa fa scattare i CAPTCHA e i ReCAPTCHA?

I CAPTCHA possono essere attivati se un sito web rileva attività insolite che assomigliano al comportamento dei bot; tali comportamenti insoliti includono richieste illimitate in una frazione di secondo e clic sui link a un tasso molto più elevato rispetto agli esseri umani. 

In questo modo, alcuni siti web avrebbero automaticamente attivato i CAPTCHA per proteggere i loro sistemi.

Per quanto riguarda i ReCAPTCHA, non è chiaro cosa li faccia scattare. Tuttavia, le cause generali sono i movimenti del mouse, la cronologia di navigazione e il tracciamento dei cookie.

Cose da sapere per aggirare i CAPTCHA durante lo scraping del web

Ora avete una panoramica chiara di cosa sono i CAPTCHA e i Rechaptchas, di come funzionano e di cosa li fa scattare. Ora è il momento di esaminare come i CAPTCHA influiscono sullo scraping del Web.

I CAPTCHA possono ostacolare lo scraping del web, in quanto i bot automatizzati eseguono la maggior parte delle operazioni di scraping. Tuttavia, non scoraggiatevi. Come indicato all'inizio di questo articolo, esistono modi per superare i CAPTCHA durante lo scraping del web. Prima di passare ad essi, concentriamoci su ciò di cui è necessario essere consapevoli prima di effettuare lo scraping.

Invio di troppe richieste al sito web di destinazione

Prima di tutto, dovete assicurarvi di non permettere al vostro web scraper/crawler di inviare troppe richieste in un breve periodo. La maggior parte dei siti web ha indicato nelle pagine dei termini e delle condizioni il numero di richieste consentite dal sito. Assicuratevi di leggerle prima di iniziare lo scraping.

Intestazioni HTTP

Quando ci si collega a un sito web, si inviano informazioni sul proprio dispositivo al sito web che si collega. Questi possono utilizzare queste informazioni per personalizzare i contenuti in base alle specifiche del dispositivo e per il tracciamento metrico. Quando scoprono che le richieste provengono dallo stesso dispositivo, qualsiasi richiesta inviata successivamente viene bloccata.

Quindi, se avete sviluppato il web scraper/crawler per conto vostro, sarete in grado di modificare le informazioni di intestazione per ogni richiesta che il vostro scraper effettua. In questo modo, al sito web di destinazione apparirà come se stesse ricevendo più richieste da dispositivi diversi. Per ulteriori informazioni sulle intestazioni HTTP, leggete qui .

Indirizzo IP

Un altro aspetto da tenere presente è che il sito web di destinazione non abbia inserito il vostro indirizzo IP nella lista nera. È probabile che inseriscano il vostro indirizzo IP nella blacklist quando inviate troppe richieste con il vostro scraper/crawler. 

Per ovviare a questo problema, è possibile utilizzare un server proxy che maschera l'indirizzo IP. 

La rotazione delle intestazioni HTTP e dei proxy (di cui si parlerà nella prossima sezione) con un pool garantirà che più dispositivi accedano al sito web da posizioni diverse. Dovreste quindi essere in grado di continuare lo scraping senza interruzioni dovute ai CAPTCHA. Detto questo, è necessario assicurarsi di non danneggiare in alcun modo le prestazioni del sito web.

Tuttavia, è necessario notare che i proxy non aiutano a superare i CAPTCHA nei moduli di registrazione, cambio password, check-out, ecc. Possono solo aiutare a superare le catture che i siti web attivano a causa del comportamento dei bot. Per evitare i CAPTCHA in questi moduli, esamineremo i risolutori di CAPTCHA in una prossima sezione.

Altri tipi di CAPTCHA

Oltre ai fattori chiave di cui sopra, è necessario conoscere i CAPTCHA di seguito riportati quando si effettua il web scraping con un bot:

Honeypots-Honeypot è un tipo di CAPTCHA racchiuso in un campo di un modulo HTML o in un link, ma la sua visibilità è nascosta con i CSS, quindi quando un bot interagisce con esso ha inevitabilmente segnalato di essere un bot. Per questo motivo, prima di fare in modo che il vostro bot scrappi il contenuto, assicuratevi che le proprietà CSS dell'elemento siano visibili.

Word/Match CAPTCHA: sono i CAPTCHA delle equazioni matematiche, come la soluzione di "3+7", ad esempio. Possono essere presenti anche puzzle di parole da risolvere.

Accesso ai social media - Alcuni siti web richiedono l'accesso con il proprio account Facebook, ad esempio. Tuttavia, non sono molto diffusi perché la maggior parte degli amministratori sa che le persone sono riluttanti ad accedere con i loro account di social media.

Tracciamento del tempo: questi CAPTCHA monitorano la velocità con cui l'utente esegue un'azione specifica, come la compilazione di un modulo, per determinare se si tratta di un umano o di un bot.

Come aggirare i CAPTCHA per lo scraping del web

Rotazione dei proxy e utilizzo di indirizzi IP di qualità

Come indicato nella sezione precedente, è necessario ruotare i proxy ogni volta che si invia una richiesta al sito web di destinazione. È un modo per evitare i CAPTCHA che si attivano durante lo scraping. In queste circostanze, è necessario utilizzare proxy con IP residenziale pulito.

Quando si ruotano i proxy, sarebbe difficile per il sito web di destinazione determinare la vostra impronta IP. Questo perché, per ogni richiesta, appare l'indirizzo IP dei proxy e non il vostro.

Ruotare gli agenti utente

Poiché si utilizza uno scraper per lo scraping del Web, è necessario camuffare l'agente utente in un browser Web popolare o in bot supportati, come i bot dei motori di ricerca riconosciuti dai siti Web.

La semplice modifica dell'user agent non sarà sufficiente, poiché è necessario disporre di un elenco di stringhe di user agent e quindi ruotarle. Questa rotazione farà sì che il sito web di destinazione vi veda come un dispositivo diverso, mentre in realtà è un solo dispositivo a inviare tutte le richieste.

Come best practice per questa fase, sarebbe opportuno tenere un database degli agenti utente reali. Inoltre, cancellare i cookie quando non sono più necessari.

Servizi di risoluzione CAPTCHA

Un metodo più semplice e poco tecnico per risolvere un CAPTCHA è quello di utilizzare un servizio di risoluzione CAPTCHA. Questi utilizzano l'intelligenza artificiale (AI), l'apprendimento automatico (MI) e un insieme di altre tecnologie per risolvere un CAPTCHA.

Alcuni dei principali risolutori di CAPTCHA attualmente esistenti nel settore sono Capsolver e Anti-CAPTCHA.

Evitare i collegamenti diretti

Se si lascia che lo scraper acceda direttamente a un URL ogni frazione di secondo, il sito web ricevente si insospettisce. Di conseguenza, il sito web di destinazione attiva un CAPTCHA.

Per evitare questo scenario, si potrebbe impostare l'intestazione del referer in modo che sembri provenire da un'altra pagina. In questo modo si ridurrebbe la probabilità di essere individuati come bot. In alternativa, si può fare in modo che il bot visiti altre pagine prima di visitare il link desiderato.

Evitare gli Honeypots

Gli honeypot sono elementi nascosti in una pagina web che gli esperti di sicurezza utilizzano per intrappolare bot o intrusi. Anche se il browser esegue il rendering dell'HTML, le proprietà CSS sono impostate per essere nascoste. Tuttavia, a differenza degli esseri umani, il codice dell'honey pot sarebbe visibile ai bot quando effettuano lo scraping dei dati. Di conseguenza, sono caduti nella trappola tesa dall'honeypot.

Pertanto, prima di iniziare lo scraping, è necessario verificare che le proprietà CSS di tutti gli elementi di una pagina web non siano nascoste o invisibili. Solo quando si è certi che nessuno degli elementi è nascosto, si imposta il bot per lo scraping.

Domande frequenti

Domande frequenti:

1. Cosa significa bypassare i CAPTCHA per il Web Scraping?
Bypassare i CAPTCHA è semplicemente il processo di rimozione dei blocchi che si verificano durante lo scraping di dati da numerosi siti. I CAPTCHA sono progettati per verificare se il traffico web è organico.
2. Che cos'è ReCaptcha?
ReCaptcha previene i siti web da spam e traffico bot dannoso. Genera puzzle interattivi per differenziare il traffico organico dal traffico bot.
3. In che modo un proxy può aiutare gli utenti a bypassare i Captchas?
Quando si inviano richieste web back to back da un bot o da qualsiasi soluzione di scraping, i CAPTCHA potrebbero facilmente identificare che il traffico proviene da un bot di spam. Pertanto, l'utilizzo di indirizzi proxy da un proxy vi farà apparire come un traffico in tempo reale.

Conclusione

Questo articolo vi darà un'idea completa di come evitare i CAPTCHA durante lo scraping del web. Evitare un CAPTCHA può essere un processo complicato. Tuttavia, con l'uso delle tecniche specifiche discusse in questo articolo, è possibile sviluppare il bot in modo tale da evitare i CAPTCHA.

Ci auguriamo che sfruttiate tutte le tecniche discusse in questo articolo.