Cosa è lo scraping di dati?

I malintenzionati possono utilizzare degli strumenti di web scraping per accedere ai dati molto più rapidamente del previsto. Il risultato è che i dati potrebbero essere utilizzati per scopi non autorizzati.

Share facebook icon linkedin icon twitter icon email icon

Scraping di dati

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Dare una definizione di scraping di dati
  • Spiegare le finalità dello scraping di dati
  • Comprendere i metodi di mitigazione dello scraping di dati
  • Differenziare tra scraping e crawling di dati

Che cosa è lo scraping dei dati?

Per scraping dei dati (più brevemente scraping), nella sua forma più generale, si intende una tecnica in cui un programma informatico estrae dei dati dall'output generato da un altro programma. Lo scraping si esplicita comunemente nel web scraping, che è il processo nel quale una applicazione estrae informazioni di valore da un sito web.

Scraping di dati

Perché lo scraping dei dati di un sito web?

In genere le aziende non vogliono che i propri contenuti vengano scaricati e riutilizzati per scopi non autorizzati. Di conseguenza, tendono a non esporre tutti i propri dati tramite un'API o altre risorse facilmente accessibili. I bot di scraping, dall'altra parte, sono interessati a ottenere i dati dei siti web indipendentemente da eventuali tentativi di limitazione dell'accesso. Di conseguenza, i bot di web scraping e le diverse strategie di protezione dei contenuti sono costantemente impegnati a giocare al gatto col topo, nel tentativo di avere la meglio gli uni sugli altri.

Il processo del web scraping è abbastanza semplice, anche se la sua implementazione può essere notevolmente complicata. Il web scraping avviene in tre fasi:

  1. In primo luogo, il blocco di codice utilizzato per estrarre le informazioni, che chiameremo "scraper" invia una richiesta HTTP GET a un determinato sito web.
  2. Quando il sito risponde, lo scraper analizza il documento HTML alla ricerca di una sequenza specifica di dati.
  3. Una volta estrapolati, i dati vengono convertiti in qualsivoglia formato specifico progettato dall'autore dello scraper.

Gli scraper possono essere progettati per vari scopi, come ad esempio:

  1. Scraping dei contenuti - i contenuti possono essere estratti dal sito con l'obiettivo di replicare il vantaggio specifico di un dato prodotto o servizio che si basa sul contenuto. Ad esempio, un prodotto come Yelp si basa sulle recensioni; un concorrente potrebbe voler "grattare" le recensioni e riprodurle sul proprio sito, fingendo che il materiale sia originale.
  2. Scraping dei prezzi - con lo scraping dei dati sui prezzi, le aziende sono in grado di raccogliere e aggregare informazioni sui propri concorrenti, che possono essere utilizzate per costruire una posizione di vantaggio specifica.
  3. Scraping di contatti - numerosi siti web contengono indirizzi e-mail e numeri di telefono non crittografati. Tramite lo scraping di alcune parti del sito, come ad esempio gli elenchi online dei dipendenti, uno scraper è in grado di raccoglierne le informazioni di contatto, da usare per invio massivo di e-mail, telefonate automatiche, o tentativi di ingegneria sociale dannosi. Questo è uno dei metodi principali con cui spammer e scammer trovano nuovi bersagli.

Come si può mitigare il web scraping?

In genere, tutti i contenuti che il visitatore di un sito Web è in grado di vedere devono essere trasferiti sull'apparecchio del visitatore, e qualsiasi informazione a cui un visitatore ha accesso può essere raccolta da un bot.

È possibile mettere in atto delle strategie per limitare il volume di web scraping che si subisce. Ecco tre metodi per contenere l'esposizione ai tentativi di scraping:

  1. Limitazione della frequenza delle richieste - per un visitatore umano che clicchi lungo una serie di pagine di un sito, la velocità di interazione col sito stesso è piuttosto prevedibile: non è infatti possibile che un umano visiti in rapida successione, ad esempio, 100 pagine al secondo. I computer, d'altro canto, possono effettuare richieste ad una rapidità un ordine di grandezza maggiore rispetto a un essere umano, e gli scraper inesperti possono essere tentati dall'utilizzare tecniche di scraping non regolato per lavorare un intero sito in pochi secondi. Limitando il numero di richieste che un dato indirizzo IP è autorizzato a eseguire in un determinato intervallo di tempo, i siti web possono proteggersi da richieste di natura strumentale, e di limitare il volume di scraping effettuabile in una data finestra temporale.
  2. Modifica a intervalli regolari del markup HTML - i bot di scraping fanno affidamento su una formattazione omogenea per poter scorrere in modo efficace i contenuti di un sito web, analizzarli e salvare i dati utili. Uno dei metodi usati per interrompere questo flusso di lavoro consiste nel modificare, a cadenze regolari, gli elementi del markup HTML, in modo che risulti più complicato effettuare lo scraping in modo uniforme. Con l'annidamento di elementi HTML, o modificando altri aspetti del markup, i tentativi più semplici di scraping verranno impediti o grandemente ostacolati. Per alcuni siti, ogni volta che si genera una pagina, vengono randomizzate e implementate alcune modifiche alle modalità di protezione dei contenuti. Altri siti web optano per modificare di tanto in tanto il proprio codice di markup, per prevenire tentativi di scraping di dati più a lungo termine.
  3. Utilizzo di CAPTCHA per richiedenti dai volumi elevati - oltre all'utilizzo di soluzioni di rate limiting, un'altra misura utile a rallentare gli scraper di dati è richiedere che il visitatore di un sito superi una prova che per un computer risulti praticamente insormontabile. Sebbene un essere umano sia ragionevolmente in grado di superare positivamente il test, un browser headless* impegnato nel data scraping, con ogni probabilità, non lo sarà, e di certo non sarà in grado di farlo ripetutamente. Tuttavia, sottoporre un visitatore a continue prove CAPTCHA può impattare negativamente sull'esperienza dell'utente.

Un altro metodo di mitigazione, meno diffuso, prevede l'incorporazione dei contenuti all'interno di oggetti multimediali, come ad esempio immagini. Poiché il contenuto non esiste in una stringa di caratteri, copiarlo diviene molto più complicato, e per l'estrazione dei dati dall'immagine è necessario il riconoscimento ottico dei caratteri (OCR). Questo metodo tuttavia può rappresentare un intralcio per quegli utenti che hanno necessità di copiare da un sito Web contenuti quali numeri di telefono o indirizzi, invece di memorizzarli o di ricopiarli.

*Un browser "headless" è un tipo di browser di navigazione, del tutto simile a Chrome o Firefox, che tuttavia non è provvisto di un'interfaccia utente grafica predefinita. Ciò gli consente di spostarsi molto più velocemente rispetto a un normale browser. Dal momento che a tutti gli effetti viene eseguito a livello di comando, un browser headless è in grado di evitare di generare intere applicazioni web. Gli scraper di dati scrivono bot che impiegano browser headless per richiedere i dati più rapidamente, dato che non c'è nessuno che visualizzi ogni pagina sottoposta a scraping.

In che modo è possibile fermare del tutto il web scraping?

L'unico modo per fermare completamente il web scraping è evitare di inserire contenuti in un sito web. L'impiego di una soluzione avanzata di gestione dei bot, tuttavia, può aiutare i siti Web a bloccare quasi del tutto l'accesso agli scraper.

Qual è la differenza tra lo scraping e il crawling dei dati?

Per "crawling" si intende il processo attuato dai grossi motori di ricerca, come Google, quando inviano i propri crawler (come Googlebot) in rete per indicizzare i contenuti del Web. Lo scraping, invece, è un'attività strutturata espressamente per estrarre dati da un determinato sito web.

Di seguito presentiamo tre delle attività effettuate da un bot di scraping che differiscono dal comportamento di un bot di crawling:

  1. Gli scraper simuleranno di essere dei browser di navigazione, mentre un crawler indicherà espressamente la propria finalità e non tenterà di indurre un sito web a pensare che sia qualcosa che non è.
  2. A volte gli scraper eseguiranno azioni complesse, come riempire formulari elettronici, oppure metteranno in atto determinati comportamenti per raggiungere un punto specifico del sito. I crawler non sono in grado.
  3. Gli scraper normalmente non tengono in nessun conto il file robots.txt, che è un file di testo che contiene informazioni redatte specificamente per indicare ai crawler quali dati analizzare, e quali aree del sito evitare. Dal momento che uno scraper viene progettato per estrarre contenuti specifici, potrebbe essere programmato per estrarre contenuti contrassegnati esplicitamente come da ignorare.

Cloudflare Bot Management utilizza l'apprendimento automatico e l'analisi comportamentale per identificare i bot dannosi (come gli scraper), proteggere i contenuti riservati e impedire ai bot di razziare una proprietà web.