Che cosa è lo scraping dei 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.

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

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Defend against bot attacks like credential stuffing and content scraping with Cloudflare

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. Use CAPTCHAs for high-volume requesters - in addition to using a rate limiting solution, another useful step in slowing content scrapers is the requirement that a website visitor answers a challenge that’s difficult for a computer to surmount. While a human can reasonably answer the challenge, a headless browser* engaging in data scraping most likely cannot, and certainly will not consistently across many instances of the challenge. However, constant CAPTCHA challenges can negatively impact the user experience.

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?

Crawling refers to the process large search engines like Google undertake when they send their robot crawlers, such as Googlebot, out into the network to index Internet content. Scraping, on the other hand, is typically structured specifically to extract data from a particular website.

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. Scrapers typically have no regard for the robots.txt file, which is a text file containing information specifically designed to tell web crawlers what data to parse and what areas of the site to avoid. Because a scraper is designed to pull specific content, it may be designed to pull content explicitly marked to be ignored.

Cloudflare Bot Management uses machine learning and behavioral analysis to identify malicious bots such as scrapersprotecting unique content and preventing bots from abusing a web property. Similarly, Super Bot Fight Mode, now available on Cloudflare Pro and Business plans, is designed to help smaller organizations defend against scrapers and other bad bots while giving them more visibility into their bot traffic.