Salta al contenuto

Come bypassare il rilevamento di Cloudflare con il selenio

Stai cercando un modo per aggirare il rilevamento di Cloudflare durante la codifica del tuo bot in Python? Allora sei sulla pagina giusta. L'articolo seguente fornisce una guida su come bypassare Cloudflare utilizzando Python e Selenium.

Web bot, inclusi raschietti web, sono progrediti molto nel corso degli anni. E ammettiamolo; anche i siti web stanno diventando più intelligenti rilevamento del traffico bot. Uno dei punti di svolta che fa sudare gli sviluppatori di bot è il Sistemi anti-bot Cloudflare.

Funziona come un middleware o un proxy tra i server web e il software client. Se invii una richiesta Web, dovrà verificare che non sia spam e sia legittima prima di consentirne il passaggio al sito Web di destinazione.

Gli utenti regolari di Internet sperimentano un piccolo ritardo e ottengono il "controllo del browser prima di accedere a …". messaggio sullo schermo. Ma questo alla fine passerà. Tuttavia, se utilizzi un bot, molto probabilmente non ti sarà consentito l'accesso. Alcuni sviluppatori pensano che l'utilizzo di un browser automatizzato come Selenium farebbe la magia anche per loro.

Sfortunatamente, Cloudflare è progettato per rilevare anche questo. Quindi cosa fai e come fai bypassare il rilevamento di Cloudflare come sviluppatore di bot che utilizza Python e Cloudflare? In questo articolo, ti verrà mostrato come bypassare il rilevamento di Cloudflare usando Python e Selenium.


Una panoramica del selenio

Panoramica sul selenio

Selenium web driver è un automatizzatore del browser. Quello che fai con quello dipende da te. Alcuni lo usano per i test del sito, altri per il bot e lo scraping. È uno strumento versatile, poiché puoi utilizzarlo in più linguaggi di programmazione popolari come Python, Java e NodeJS.

Supporta anche i browser più diffusi come Chrome, Firefox, Edge e Internet Explorer. Il nostro focus qui è sul suo supporto Python. In Python, Selenium è lo strumento principale per il botting e lo scraping di siti Web che dipendono dal rendering JavaScript. Artisti del calibro di Scrapy, Requests e Beautifulsoup non sono adatti a questo.

Tuttavia, Selenium è efficace solo contro i siti Web dotati di sistemi antispam di base. Con l'aiuto di proxy, la cancellazione dei cookie, l'impostazione di ritardi casuali e alcuni altri metodi, puoi eludere il rilevamento e il blocco.

Ma quando un sito web è protetto da sistemi antispam come Cloudflare e Akamai, Selenium diventa inefficace. Questo perché ci sono puntatori predefiniti che i sistemi anti-spam utilizzano per rilevare i bot che ha lo strumento Selenium predefinito.


Come Bypassare Cloudflare Usando Selenium e Python

Con i giusti passaggi, Selenium può aggirare facilmente Cloudflare. Prima di approfondire, diamo un'occhiata a come funziona Cloudflare nel rilevare i bot codificati con Python e Selenium. Per fare ciò, codificheremo un semplice bot che tenta di accedere www.rayobyte.com.

Panoramica di Rayobyte

Rayobyte è un provider proxy protetto da Cloudflare. Se provi ad accedervi con un browser, il tuo browser deve essere controllato prima che ti venga concesso l'accesso. Lo useremo per testare l'efficacia di Cloudflare e quindi codificare un altro bot che incorporerà misure per aggirarlo.


Passaggio 1: installare gli strumenti necessari

Per poter codificare un bot in Python, devi avere Python installato. Per questo progetto, devi anche avere installato Selenium.

  • Python

Panoramica di Python

Per la maggior parte dei sistemi, Python è già installato. Tuttavia, la versione installata è Python 2, utilizzata per motivi legacy. Dovrai installare Python 3 per usare Selenium. Visitare il pagina di download ufficiale di Python per averlo installato sul tuo sistema. È disponibile per Windows, macOS e Linux. Per verificare se l'installazione è stata eseguita correttamente, eseguire il comando seguente nel prompt dei comandi.

"python —versione"
  • Selenio

Strumenti di selenio

Il selenio è uno strumento di boting completo. Automatizza il browser, consentendoti di accedere alle pagine, fare clic sui pulsanti, scorrere e persino compilare moduli ed eseguire qualsiasi azione che puoi eseguire manualmente. Il selenio è uno strumento di terze parti.

Affinché funzioni, è necessario installarlo, quindi scaricare e posizionare il driver specifico per il browser che si desidera automatizzare nel percorso.

Per questa guida, utilizzeremo Chrome poiché è il browser più popolare in circolazione.

Per installare Selenium, eseguire il file

"pip installa selenio"

comando nel prompt dei comandi. Una volta completato il download, ora puoi visitare la pagina di download per il driver web di Chrome. C

Controlla la versione di Chrome che possiedi e scarica il driver specifico per la tua versione di Chrome. Se scarichi quello di un'altra versione, non funzionerà.

Una volta scaricato, decomprimere il contenuto in una cartella. Quella cartella sarà la cartella di lavoro per questo progetto.


Passaggio 2: invia la richiesta al sito Web senza trucco di bypass

Il nostro sito web di destinazione è www.rayobyte.com. Codificheremo uno script che invierà una richiesta a questo sito Web e vedremo la risposta che otteniamo.

Di seguito il codice. È abbastanza semplice. Quello che richiede più righe di codice è in realtà quello con il codice per bypassare Cloudflare.

Usa il codice qui sotto nel tuo Python IDLE preferito. Nel mio caso, sto usando Pycharm, che attualmente è il miglior IDLE sul mercato, ma questo è discutibile. Il problema principale è che è pagato.

from selenium.webdriver import Chrome browser = Chrome() browser.get("https://rayobyte.com")

Il codice sopra avvierà il browser Chrome sul tuo sistema e proverà ad accedere alla home page del sito web di Rayobyte.

Tuttavia, invece di accedere alla pagina, andrà in loop e rimarrà sulla pagina di verifica di Cloudflare. Di seguito è riportato uno screenshot di come appare la pagina.

Se controlli bene il codice, vedrai che non l'ho chiuso. Questo per consentirmi di vedere se finirà per consentire il caricamento della pagina. Ma questo non accadrà mai. Dovresti chiudere il browser automatizzato.

Come hai già visto, il selenio, da solo, non può essere utilizzato per aggirare Cloudflare. Se vuoi bypassare Cloudflare, devi utilizzare alcuni trucchi. Il passaggio successivo ti mostrerà come utilizzare lo stesso Selenium e Python per bypassare Cloudflare.


Passaggio 3: utilizzo del plug-in per bypassare Cloudflare

utilizzando il plug-in per bypassare Cloudflare

Come puoi vedere da quanto sopra, Cloudflare rileva gli script Selenium come bot. L'uso dei proxy non ti aiuterà in questo caso. Hai bisogno di altri metodi.

Il modo migliore per aggirare Cloudflare con Selenium e Python è utilizzare una libreria nota come Driver Chrome non rilevato. Puoi installarlo usando il file

"pip install undetected-chromedriver"

Questo plug-in funziona solo se desideri guidare/automatizzare Chrome. Attualmente non ci sono opzioni per automatizzare altri browser. Se hai installato questa libreria, tutto ciò che devi fare è sostituire la classe del browser predefinita in Selenium con this, e sei a posto.

Di seguito è riportato uno snippet di codice che mostra come utilizzare correttamente ChromeDriver non rilevato per bypassare Cloudflare.

import undetected_chromedriver as uc from selenium.webdriver.support.ui import WebDriverWait driver = uc.Chrome(use_subprocess=True) wait = WebDriverWait(driver, 20) driver.get("https://rayobyte.com")

Utilizzando semplicemente la libreria chromedriver non rilevata, vedrai che sei in grado di eludere il rilevamento di Cloudflare. Ciò ti consentirà di automatizzare le tue attività o persino di raschiare il Web alla ricerca di dati senza problemi.


Luogo di proxy per bypassare Cloudflare

Luogo di proxy per bypassare Cloudflare

Se guardi il codice sopra, vedrai che i proxy non sono stati utilizzati nell'intero processo. Ora inizi a chiederti se hai bisogno di proxy per bypassare Cloudflare. Il motivo è semplice: inviamo solo una richiesta. Se hai solo bisogno di inviare poche richieste, non è necessario utilizzare un proxy per farlo.

Tuttavia, se invierai molte richieste come fa la maggior parte dei bot, allora devi utilizzare i proxy.

Questo perché, come con la maggior parte dei sistemi anti-bot, il tracciamento IP è ancora una delle parti principali del servizio Cloudflare. E quando riceve troppe richieste dallo stesso IP, non importa se c'è o meno un footprint del bot; tale IP sarà considerato sospetto e, come tale, ulteriori richieste verranno bloccate.

Ti consigliamo di utilizzare proxy residenziali per bypassare Cloudflare. Alcuni dei migliori fornitori di proxy per questi includono Bright Data, Smartproxy e Soax. Se non è necessario mantenere le sessioni, l'utilizzo di proxy a rotazione di questi provider è la soluzione migliore per aggirare Cloudflare.


FAQ

D. I proxy proteggono dal blocco di Cloudflare?

No, non lo fanno. Potresti vedere alcuni proxy commercializzarsi come proxy per aggirare Cloudflare. La realtà sul campo è l'opposto. I proxy da soli non ti proteggeranno dal blocco di Cloudflare. È necessario utilizzare strumenti in grado di imitare i normali browser degli utenti, ed è qui che entra in gioco l'utilizzo del ChromeDriver non rilevato.

I proxy sono necessari quando è necessario inviare molte richieste tramite Cloudflare e il mancato utilizzo dei proxy rischia di interrompere il loro sistema di tracciamento e blocco IP. I proxy sono necessari in molti casi, ma non sono gli unici strumenti necessari per eludere il bypass di Cloudflare.

D. Quanto è efficace Cloudflare nel prevenire i bot?

Se il tuo sito Web di destinazione è protetto da Cloudflare, allora devi davvero preoccuparti. Questo perché Cloudflare ha alcuni numeri interessanti che ti spaventeranno senza nemmeno tentare di aggirarli.

Secondo i dati disponibili, i siti Web protetti da Cloudflare notano una riduzione del 65% delle richieste prima di configurare Cloudflare. Questo è un ottimo lavoro che Cloudflare sta facendo proprio lì. Aiuta anche i siti Web a caricarsi più velocemente e a utilizzare meno larghezza di banda. Tuttavia, con le tecniche e gli strumenti giusti, puoi ancora aggirarlo e renderlo meno efficace.

I sistemi anti-bot come Cloudflare proteggono i siti Web dagli attacchi DDoS e da altre forme di spam. Bypassarli non è illegale, anche se i siti web li configurano per proteggere i propri sistemi e database.

Tuttavia, ciò che fai dopo averli aggirati potrebbe metterti nei guai legali. Se hai solo bisogno di automatizzare le tue attività senza causare alcun danno al sito Web sovraccaricandolo di richieste, allora sei ancora all'interno della cornice legale.

Non siamo consulenti legali competenti e, in quanto tali, ti consigliamo di chiedere consulenza legale a professionisti competenti. Niente di ciò che leggi qui dovrebbe essere visto o preso come consulenza legale.


Conclusione

In qualità di sviluppatore di bot, i sistemi anti-bot come Cloudflare sono alcuni degli incubi che dovrai affrontare, poiché possono frustrarti. Ciò è particolarmente vero se non hai esperienza nel bypassarli.

Come principiante, potresti pensare che usare Selenium sia una facile via d'uscita per te poiché Selenium automatizza i browser e rende JS.

Tuttavia, Cloudflare sembra essersi impossessato di bot basati su Selenium. Con l'aiuto dello strumento ChromeDriver non rilevato descritto nell'articolo, dovresti essere in grado di aggirarlo senza problemi.

Partecipa alla conversazione

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *