Web scraping: cos'è, come funziona e quando è legale
Cos'è il web scraping, come funziona tecnicamente, quali sono i limiti legali in Italia e in Europa e le regole pratiche per farlo senza creare problemi.
Raccogliere automaticamente dati da un sito è una delle esigenze più comuni quando si automatizza qualcosa: prezzi dei concorrenti, annunci, cataloghi, dati pubblici. Tecnicamente è alla portata di chiunque sappia programmare un po'. La parte delicata non è il come, è il se — e su quello circolano tante mezze verità. In questo articolo ti spiego entrambe le cose.
Questo è un articolo divulgativo, non un parere legale. Per progetti commerciali su dati altrui, conviene sentire un professionista.
Cos'è il web scraping
Il web scraping è l'estrazione automatica di dati da pagine web: un programma scarica la pagina, ne interpreta il contenuto ed estrae le informazioni che servono, salvandole in forma strutturata.
Va distinto da due cose vicine:
Il crawling è la scansione sistematica di un sito seguendo i link — è quello che fanno i motori di ricerca. Lo scraping estrae dati da pagine specifiche.
Le API sono canali che un servizio espone apposta per fornire dati. Se esiste un'API, usala. È più stabile, più veloce, esplicitamente autorizzata e non si rompe al primo cambio di grafica. Lo scraping è la soluzione quando l'API non c'è.
Come funziona
Il flusso è sempre lo stesso, in qualunque linguaggio:
1. Scaricare la pagina. Una richiesta HTTP restituisce l'HTML.
2. Interpretare l'HTML. Una libreria di parsing trasforma il testo in una struttura navigabile, da cui si estraggono gli elementi tramite selettori CSS o XPath.
3. Estrarre e pulire. Testo, attributi, link. Poi normalizzazione: togliere spazi, convertire prezzi e date in formati coerenti.
4. Salvare. CSV, database, foglio di calcolo.
In Python — il linguaggio più usato per questo, come racconto in automatizzare task con Python — lo stack tipico è requests più BeautifulSoup per i casi semplici, Scrapy per progetti strutturati.
Il problema dei siti dinamici
C'è un ostacolo che si incontra sempre: molti siti moderni caricano i contenuti via JavaScript dopo il caricamento iniziale. Scaricando l'HTML grezzo trovi una pagina quasi vuota.
Le due soluzioni:
Un browser automatizzato (Playwright, Selenium) che esegue realmente il JavaScript. Funziona sempre, ma è molto più lento e pesante.
Trovare la chiamata sotto. Spesso la pagina recupera i dati da un endpoint interno che restituisce JSON. Aprendo gli strumenti per sviluppatori del browser, scheda Rete, lo si individua. È quasi sempre la strada migliore: più veloce, più stabile e i dati arrivano già strutturati.
La parte legale
Qui sta il punto che interessa davvero, e la risposta onesta è che dipende da cosa raccogli e cosa ci fai — non dal fatto che i dati siano "pubblici".
Vanno tenuti distinti quattro piani, perché si applicano insieme.
1. I termini di servizio
Molti siti vietano esplicitamente lo scraping nelle proprie condizioni d'uso. È un vincolo contrattuale: violarlo può portare al blocco dell'accesso e, in certi casi, a contestazioni. Il peso giuridico varia a seconda che tu abbia accettato quelle condizioni (registrandoti) o meno.
2. Il diritto d'autore e il diritto sulle banche dati
I contenuti (testi, foto, descrizioni) sono in genere protetti dal diritto d'autore: raccoglierli per analisi interna è una cosa, ripubblicarli è un'altra.
In Europa esiste inoltre una tutela specifica per le banche dati: chi ha investito in modo rilevante nella costituzione di una raccolta può opporsi all'estrazione di parti sostanziali della stessa. È il vincolo che pesa di più su chi vuole replicare un catalogo o un elenco.
3. I dati personali
Se raccogli dati riferibili a persone — nomi, email, profili — sei nel campo del GDPR, e il fatto che siano pubblicamente visibili non li rende liberamente utilizzabili.
Servono una base giuridica per il trattamento, informativa, limitazione delle finalità. La raccolta massiva di email per invio commerciale non autorizzato è illecita, ed è anche l'uso più diffuso dello scraping. Il quadro generale è in GDPR per sviluppatori.
4. Il carico sul server
Interrogare un sito con migliaia di richieste al minuto può degradarne il funzionamento. Oltre a essere scorretto, un comportamento che compromette il servizio altrui può avere rilevanza penale.
Il quadro pratico
| Scenario | Valutazione |
|---|---|
| Dati pubblici non personali, uso interno, ritmo lento | Generalmente il caso più difendibile |
| Dati aggregati per analisi statistica | Solitamente ammissibile |
| Ripubblicazione di contenuti altrui | Problema di diritto d'autore |
| Estrazione sostanziale di un database | Problema di diritto sui database |
| Raccolta di dati personali | GDPR, base giuridica necessaria |
| Aggirare autenticazione o protezioni | Da evitare del tutto |
| Richieste massive che rallentano il sito | Da evitare del tutto |
Le regole per farlo bene
Al di là della legge, le buone pratiche che riducono i problemi:
Cerca prima un'API o un dataset aperto. Moltissimi dati che si tenta di raschiare sono disponibili in forma ufficiale.
Leggi robots.txt. Non è vincolante di per sé, ma indica la volontà del gestore, e ignorarla pesa in caso di contestazione.
Rallenta. Una richiesta ogni pochi secondi, non cento al secondo. Un ritmo umano non danneggia nessuno e non ti fa bloccare.
Identificati. Uno user-agent che dice chi sei e come contattarti è più corretto di uno camuffato — e se qualcuno ha problemi, ti scrive invece di bloccarti.
Prendi solo quello che ti serve. Scaricare l'intero sito per usarne il 2% è sproporzionato.
Metti in cache. Non richiedere due volte la stessa pagina inutilmente.
Non aggirare le protezioni. Se un sito mette CAPTCHA o richiede login, sta dicendo chiaramente di no. Superare una misura di protezione cambia completamente la natura giuridica dell'operazione.
Gestisci gli errori. I siti cambiano struttura: uno scraper non presidiato smette di funzionare in silenzio, o peggio, raccoglie dati sbagliati.
Dove serve davvero
Gli usi legittimi e comuni:
- Monitoraggio prezzi dei concorrenti, per uso interno
- Ricerca e analisi su dati pubblici
- Aggregazione di annunci o offerte, con rimando alla fonte
- Archiviazione dei propri contenuti da una piattaforma
- Test e verifica sul proprio sito
- Alimentare automazioni — è un ingrediente frequente nei flussi descritti in automazioni utili per freelance e PMI
In sintesi
Il web scraping estrae dati da pagine web in modo automatico. Tecnicamente è semplice; l'ostacolo pratico più comune sono i siti che caricano i contenuti via JavaScript, e la soluzione migliore è quasi sempre individuare la chiamata interna che restituisce i dati già strutturati.
Sul piano legale, la domanda non è "i dati sono pubblici?" ma "cosa raccolgo e cosa ci faccio?". Uso interno di dati non personali a ritmo moderato è il caso più difendibile; ripubblicazione, estrazione di interi database e raccolta di dati personali sono terreni con vincoli precisi.
Le due regole che evitano la maggior parte dei problemi: cerca prima un'API, e non aggirare mai una protezione. Se un sito ti sta dicendo di no, la risposta non è tecnica.
Se stai costruendo un'automazione e vuoi impostarla bene fin dall'inizio, la consulenza per nuovi progetti serve anche a questo.