logo
languageITdown
menu

Le 5 Tecniche di Anti Web Scraping Più Comuni

6 minuti di lettura

Le tecniche anti-scraping vengono spesso utilizzate per bloccare i bot di scraping e impedire che le informazioni di un sito web siano accessibili liberamente.

Lo scraping dei dati è una soluzione efficace e a basso costo per molte aziende che necessitano di raccogliere informazioni dal web. Tuttavia, esiste una continua “guerra” tra chi sviluppa bot di scraping e chi implementa sistemi anti-bot. Questo perché uno scraping mal gestito può rallentare il sito o, nei casi peggiori, causarne il crash. Per questo motivo, molti siti adottano strategie anti-scraping per scoraggiare tali attività.

In questo articolo vediamo le cinque tecniche anti-scraping più comuni e come affrontarle.

1. Blocco tramite indirizzo IP

Uno dei metodi più semplici per identificare attività di scraping è il monitoraggio degli indirizzi IP. Se un sito riceve un numero eccessivo di richieste da uno stesso IP in un intervallo di tempo ridotto, è probabile che quell’IP venga bloccato per sospetta attività automatizzata. In questo caso, ciò che conta davvero nella costruzione di un crawler resistente ai blocchi è il numero e la frequenza delle visite per unità di tempo. Ecco alcuni scenari che potresti incontrare.

Come aggirare il blocco IP

Caso 1: Visitare più volte in pochi secondi. Nessun essere umano reale può navigare così velocemente. Quindi, se il tuo crawler invia richieste frequenti a un sito web, quest’ultimo bloccherà sicuramente l’IP perché lo identificherà come un robot.
Soluzione: Rallenta la frequenza delle richieste. Impostare un tempo di attesa (ad esempio usando una funzione “sleep”) prima dell’esecuzione o aumentare l’intervallo tra due passaggi è sempre una buona strategia.

Caso 2: Visitare un sito web sempre con lo stesso ritmo. Un essere umano reale non ripete continuamente gli stessi schemi comportamentali. Alcuni siti monitorano la frequenza delle richieste e, se queste vengono inviate periodicamente con lo stesso schema (ad esempio, una richiesta al secondo), il meccanismo anti-scraping verrà molto probabilmente attivato.
Soluzione: Aggiungi ritardi casuali per rendere il comportamento del bot più simile a quello umano.

Caso 3: Incontrare algoritmi complessi per tracciare le richieste provenienti da diversi IP e analizzarne la media. Se l’attività di un IP risulta anomala, come inviare sempre lo stesso numero di richieste o visitare lo stesso sito alla stessa ora ogni giorno, quell’IP verrà bloccato.
Soluzione: Cambia periodicamente l’indirizzo IP. La maggior parte dei servizi VPN, server cloud e servizi proxy offrono IP rotanti. Quando le richieste vengono inviate tramite questi IP rotanti, il crawler si comporta in modo meno simile a un bot, riducendo così il rischio di essere bloccato.

Se usi Octoparse, puoi facilmente configurare l’utilizzo di proxy per ruotare gli IP e ridurre drasticamente il rischio di blocco.

2. CAPTCHA

Hai mai visto questo tipo di immagini durante la navigazione su un sito web?

1. Devi cliccare per confermare “Non sono un robot”

captcha robot

2. Devi selezionare immagini specifiche

captcha semafori

3. Devi inserire o selezionare la stringa corretta

captcha caratteri

Che cos’è un Captcha?

Queste immagini si chiamano Captcha. Captcha è l’acronimo di Completely Automated Public Turing test to tell Computers and Humans Apart (Test di Turing Pubblico e Completamente Automatico per distinguere Computer e Umani). Si tratta di un programma automatico pubblico utilizzato per determinare se l’utente è una persona reale o un bot. Questo sistema propone diverse sfide, come immagini distorte, campi da completare o persino semplici equazioni, che si presume possano essere risolte solo da un essere umano.

Questo test si è evoluto nel tempo e oggi molti siti web utilizzano i Captcha come tecnica anti-scraping. In passato era molto difficile aggirare un Captcha in maniera diretta, ma attualmente esistono diversi strumenti open-source in grado di risolvere questi problemi, anche se spesso richiedono competenze di programmazione avanzata. Alcuni sviluppatori arrivano persino a creare librerie personalizzate e tecniche di riconoscimento delle immagini basate su machine learning o deep learning per superare questo controllo.

Come affrontare il CAPTCHA nello scraping:

  • La strategia migliore è evitare di attivarlo, rallentando o randomizzando il processo di estrazione.
  • Usa IP rotanti e comportamenti realistici per non far scattare i controlli.
  • Octoparse offre diverse soluzioni integrate per gestire i CAPTCHA, anche senza conoscenze tecniche.

3. Accesso con Login

Molti siti web, in particolare le piattaforme di social media come Twitter e Facebook, mostrano i contenuti solo dopo aver effettuato il login. Per estrarre dati da siti di questo tipo, i crawler devono quindi simulare i passaggi di accesso.

Dopo aver effettuato l’accesso, il crawler deve salvare i cookie. Un cookie è un piccolo file che memorizza i dati di navigazione dell’utente. Senza i cookie, il sito web non riconoscerebbe che l’accesso è già avvenuto e richiederebbe nuovamente il login.

Inoltre, alcuni siti con sistemi di anti-scraping particolarmente rigidi consentono solo un accesso parziale ai dati, ad esempio un massimo di 1000 righe di dati al giorno, anche dopo aver effettuato l’accesso.

Il tuo bot deve sapere come effettuare il login

1) Simulare le operazioni di tastiera e mouse.
Il crawler deve simulare l’intero processo di login, compresi i passaggi come cliccare nella casella di testo, premere il pulsante “Accedi” o inserire le credenziali (username e password) tramite tastiera.

2) Effettuare l’accesso e salvare i cookie.
Nei siti che consentono l’uso dei cookie, questi vengono utilizzati per ricordare l’utente. Grazie ai cookie, non sarà necessario effettuare nuovamente il login per un certo periodo di tempo. In questo modo, il crawler può evitare ripetuti accessi manuali e continuare a raccogliere le informazioni richieste.

3) Pianificare il crawler per estrazioni periodiche.
Se ti trovi di fronte a un sistema anti-scraping molto restrittivo, puoi programmare il crawler per monitorare il sito a una frequenza prestabilita, ad esempio una volta al giorno. In questo modo, il bot estrarrà le ultime 1000 righe di dati a intervalli regolari, accumulando progressivamente i nuovi dati disponibili.

4. User-Agent (UA)

UA, o User-Agent, è un’intestazione che indica al sito web informazioni sul dispositivo e sul browser dell’utente (sistema operativo, versione del browser, lingua, plug-in, ecc.).
Esempio: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, come Gecko) Chrome/17.0.963.56 Safari/535.11.

Nel web scraping, se il crawler non invia un UA valido, viene riconosciuto come semplice script e rischia di essere bloccato. Per evitare questo, il crawler deve simulare un browser reale tramite un header UA. Alcuni siti mostrano contenuti diversi in base al browser o alla versione: per accedere ai dati corretti, può essere utile variare l’UA e testare più opzioni.

Come superare i controlli UA:

  • Imposta un UA realistico per far sembrare che la richiesta provenga da un browser.
  • Cambia periodicamente l’UA per evitare blocchi dovuti all’utilizzo prolungato dello stesso identificatore.
  • Alcuni siti mostrano contenuti diversi in base al browser, quindi testare più UA può aiutarti a trovare quello più adatto.

5. AJAX

Che cos’è AJAX?

AJAX è l’acronimo di Asynchronous JavaScript and XML, una tecnica che consente di aggiornare i contenuti di un sito web in modo asincrono. In altre parole, l’intera pagina non deve essere ricaricata quando vengono apportate solo piccole modifiche al suo interno. Oggi sempre più siti web sono sviluppati con AJAX invece che con tecniche di sviluppo web tradizionali.

Come capire se un sito utilizza AJAX?

Un sito senza AJAX:
L’intera pagina viene aggiornata anche se si esegue un piccolo cambiamento. Di solito compare un segnale di caricamento e l’URL della pagina cambia. Per questi siti, è possibile sfruttare il meccanismo osservando il modello con cui gli URL cambiano e quindi generare automaticamente una serie di URL per estrarre i dati direttamente, senza dover insegnare al crawler a navigare come un utente umano.

Un sito con AJAX:
Solo l’area su cui si fa clic viene aggiornata, senza alcun segnale di caricamento, e l’URL della pagina rimane invariato. In questo caso il crawler deve gestire la situazione in maniera diretta, poiché non può basarsi su cambiamenti di URL.

Come gestire i contenuti AJAX nello scraping?

  • Se il sito aggiorna i dati senza cambiare URL, il bot deve essere in grado di interagire direttamente con gli elementi dinamici.
  • Octoparse supporta pienamente i siti AJAX e consente di gestire i contenuti dinamici senza scrivere codice, grazie al suo motore integrato che esegue JavaScript.

Conclusione

Lo scraping e le tecniche anti-scraping si evolvono costantemente. È probabile che, nel momento in cui leggi questo articolo, alcune soluzioni siano già state aggiornate.

Tuttavia, con strumenti come Octoparse, puoi affrontare facilmente anche le barriere più complesse. La nostra missione è rendere i dati accessibili a tutti, anche a chi non ha competenze tecniche. Se hai bisogno di un tool di scraping potente, contattaci. Siamo pronti ad aiutarti a superare qualsiasi limite.

Ottieni Dati dal Web in Pochi Clic
Estrai facilmente dati da qualsiasi sito web senza codifica.
Download Gratuito

Articoli popolari

Esplora argomenti

Inizia a usare Octoparse oggi

Scarica

Articoli correlati