Scraping: definizione, funzionamento, strumenti e quadro legale
Cos'è lo scraping?
Definizione di scraping
Lo scraping, oweb scraping quando riguarda pagine internet, indica l'utilizzo di un programma o di un software per recuperare automaticamente determinate informazioni presenti su un sito web.
Il principio è relativamente semplice: invece che una persona consulti una pagina, individui i dati di interesse e li copi manualmente in un file, uno scraper esegue automaticamente queste operazioni.
Può, ad esempio, aprire in successione migliaia di schede aziendali e recuperare:
- il nome dell'azienda;
- il settore di attività;
- l'indirizzo;
- il sito internet;
- alcuni contatti professionali;
- le informazioni visibili sui prodotti o servizi.
I risultati possono poi essere archiviati in un foglio di calcolo, una banca dati B2B o inviati direttamente a un CRM.
Lo scraping non deve quindi essere confuso con una semplice copia di una pagina web. Il suo obiettivo consiste solitamente neltrasformare informazioni disperse e poco strutturate in dati utilizzabili su larga scala.
A cosa serve lo scraping?
Lo scraping risponde innanzitutto a un problema di volume.
Raccogliere manualmente i prezzi di 20 concorrenti può essere fattibile. Ripetere questa operazione ogni giorno su 10.000 referenze prodotto non lo è più. È proprio in questo momento che l'automazione diventa interessante.
Un'azienda può utilizzare lo scraping per:
- monitorare le variazioni di prezzo dei propri concorrenti;
- identificare nuove aziende in linea con i propri criteri di prospezione;
- alimentare un database;
- monitorare annunci o offerte di lavoro;
- raccogliere recensioni o informazioni pubbliche;
- analizzare i risultati dei motori di ricerca;
- rilevare modifiche su pagine specifiche;
- condurre ricerche di mercato;
- arricchire i dati già presenti in un CRM.
Nel B2B, lo scraping può intervenire in particolare a monte di un processo di lead generation B2B. L'obiettivo non è necessariamente quello di contattare immediatamente tutte le persone identificate, ma di disporre di informazioni che consentano di profilare meglio le aziende o i contatti da analizzare.
Quali tipi di dati possono essere raccolti?
Tecnicamente, uno scraper può recuperare numerosi elementi visibili o presenti nel codice di una pagina:
- testi;
- titoli e descrizioni;
- tabelle;
- link;
- prezzi;
- codici prodotto;
- categorie;
- valutazioni e recensioni;
- date;
- informazioni relative alle aziende;
- attributi HTML;
- alcuni metadati;
- dati strutturati integrati nel codice sorgente.
È possibile identificare anche immagini o documenti e recuperarne i link, sebbene il loro download o riutilizzo sollevi successivamente ulteriori questioni legate in particolare al diritto d'autore.
È inoltre necessario fare una distinzione essenziale tradati relativi a un'aziendaedati che consentono di identificare una persona fisica.
Un numero SIREN o il settore di attività di un'azienda non hanno lo stesso status giuridico di un nome, un indirizzo e-mail nominativo o un numero di telefono personale.
Questa distinzione deve essere integrata fin dalla progettazione del progetto di scraping.
Come funziona lo scraping?
Le fasi di un processo di scraping
Un progetto di scraping segue generalmente cinque fasi principali.
1. Identificare le fonti
È necessario iniziare determinando con precisione quali siti o pagine contengono le informazioni ricercate.
2. Identificare i dati da estrarre
Lo scraper deve sapere quali elementi recuperare: nome dell'azienda, prezzo, categoria, URL, data, descrizione, ecc.
3. Scaricare o visualizzare le pagine
Il programma invia richieste alle pagine target o utilizza un browser automatizzato quando una parte del contenuto è generata dinamicamente.
4. Analizzare il contenuto
Lo scraper identifica gli elementi corrispondenti alle regole definite: tag HTML, classi CSS, attributi, strutture JSON o altri elementi presenti nella pagina.
5. Archiviare e pulire i dati
Le informazioni ottenute vengono salvate in un file o in un database, quindi controllate, normalizzate ed eventualmente de-duplicate.
In un contesto professionale, una sesta fase diventa rapidamente indispensabile:l'automazione dell'esecuzione e dell'aggiornamento.
Come uno scraper recupera i dati da una pagina web
Una pagina web è costruita a partire da diverse tecnologie, principalmente HTML, CSS e JavaScript.
L'HTML contiene gran parte della struttura della pagina. Facciamo un esempio semplificato:
<span class="prix">49 €</span>
Uno scraper può ricevere come istruzione: «recupera il contenuto di tutti gli elementi la cui classe è prix».
Il risultato ottenuto sarà qui: 49 €.
Su una pagina contenente 100 prodotti costruiti in modo simile, la stessa regola permette di recuperare automaticamente i 100 prezzi.
Nella realtà, i siti moderni sono ovviamente più complessi. Le informazioni possono essere:
- caricate solo dopo l'apertura della pagina;
- recuperate tramite una richiesta JavaScript;
- visualizzate dopo un clic;
- suddivise su più pagine;
- accessibili solo dopo l'autenticazione;
- caricate durante lo scorrimento.
La scelta della tecnologia utilizzata per lo scraping dipende quindi direttamente dal modo in cui il sito visualizza i propri dati.
I principali formati di dati estratti (CSV, Excel, JSON, XML)
Una volta raccolte, le informazioni devono essere archiviate in un formato adatto al loro utilizzo.
CSV
Il CSV è particolarmente pratico per dati tabulari semplici. Può essere facilmente aperto in Excel, Google Sheets o importato in numerosi software.
Excel
Il formato Excel è indicato quando gli utenti desiderano consultare, filtrare o rielaborare direttamente i dati in un foglio di calcolo.
JSON
JSON è ampiamente utilizzato per trasmettere dati tra applicazioni. Permette di rappresentare strutture più complesse e si integra particolarmente bene con le API e le applicazioni web.
XML
XML è anch'esso un formato di dati strutturato. Rimane utilizzato in molti sistemi professionali, anche se oggi JSON è molto comune nelle applicazioni web moderne.
Il formato giusto dipende quindi dal trattamento previsto dopo l'estrazione. Per un'analisi occasionale, CSV o Excel sono spesso sufficienti. Per alimentare automaticamente un'applicazione o una piattaforma, JSON sarà generalmente più adatto.
I diversi tipi di scraping
Non tutti i progetti di scraping si basano sullo stesso metodo. La tecnica dipende principalmente dalla fonte, dal volume di dati e dalla complessità del sito.
Web scraping
Il web scraping consiste nel recuperare direttamente le informazioni presenti sulle pagine web.
Si tratta dell'uso a cui ci si riferisce solitamente quando si parla semplicemente di "scraping".
Uno scraper web può, ad esempio, navigare in un catalogo online, aprire ogni scheda prodotto e recuperare:
- il titolo;
- il prezzo;
- la disponibilità;
- il codice di riferimento;
- la categoria.
È particolarmente adatto alle informazioni organizzate secondo una struttura relativamente ripetitiva.
Data scraping
Il termine data scraping ha un significato più ampio.
Descrive l'estrazione automatizzata di dati da una fonte digitale, che non è necessariamente una pagina web classica.
Può trattarsi dell'estrazione di dati da:
- documenti;
- file;
- applicazioni;
- flussi;
- interfacce digitali.
Il web scraping costituisce quindi una forma particolare di data scraping.
Screen scraping
Lo screen scraping consiste principalmente nel recuperare le informazioni così come appaiono sullo schermo.
Questa tecnica viene utilizzata in particolare quando i dati sono difficilmente accessibili in una forma direttamente utilizzabile nel codice o quando si lavora con alcune interfacce datate.
È generalmente meno robusta di un'estrazione basata direttamente sulla struttura dei dati. Una modifica visiva dell'interfaccia può essere sufficiente a compromettere il funzionamento dello scraper.
Scraping tramite API
Alcune applicazioni web comunicano con i propri server tramite API.
In questo caso, a volte può essere più efficace recuperare le informazioni direttamente da un'interfaccia progettata per trasmettere dati strutturati, qualora il suo utilizzo sia consentito.
Una risposta API in formato JSON è solitamente molto più semplice da elaborare rispetto all'HTML di un'intera pagina.
Attenzione però: scoprire che un sito utilizza un'API in background non significa automaticamente che tale interfaccia possa essere utilizzata liberamente. È necessario verificare le condizioni di accesso e di utilizzo applicabili.
Scraping statico e scraping dinamico (JavaScript)
La differenza tra scraping statico e dinamico è fondamentale.
Un sitostatico, in questo contesto, restituisce direttamente le informazioni cercate nell'HTML ricevuto dallo scraper. Una semplice richiesta HTTP seguita da un'analisi HTML può quindi essere sufficiente.
Su un sitodinamico, alcuni dati appaiono solo dopo l'esecuzione di JavaScript.
In questo caso, può diventare necessario uno strumento in grado di pilotare un browser. Carica la pagina come farebbe un utente, lascia che gli script vengano eseguiti e poi recupera le informazioni una volta visualizzate.
Ecco una sintesi dei principali approcci:
I principali casi d'uso dello scraping
Lead generation B2B
Lo scraping può facilitare l'identificazione di aziende che corrispondono a determinati criteri:
- settore;
- localizzazione;
- dimensioni;
- tecnologia utilizzata;
- presenza in determinati elenchi;
- attività specifica.
Queste informazioni possono poi servire come punto di partenza per una qualificazione commerciale.
La sfida consiste tuttavia nell'evitare una logica puramente quantitativa. Accumulare migliaia di contatti senza una strategia di targeting produce raramente buoni risultati.
Un approccio strutturato deve collegare raccolta dati, qualificazione e strategia di prospezione B2B.
Un agenzia di prospezione B2B può supportare concretamente questa riflessione lavorando sul targeting, sulla qualificazione e sulla fissazione di appuntamenti, anziché sulla semplice accumulazione di dati.
Analisi della concorrenza
Lo scraping consente di automatizzare una parte dell'analisi della concorrenza.
Un'azienda può monitorare regolarmente:
- l'apparizione di nuove offerte;
- le variazioni di prezzo;
- il lancio di nuove funzionalità;
- la pubblicazione di contenuti;
- gli aggiornamenti di un catalogo;
- alcune informazioni pubbliche riguardanti i propri concorrenti.
Il vantaggio principale risiede nella frequenza della raccolta. Invece di realizzare un'analisi della concorrenza sporadica, l'azienda può costruire un sistema di monitoraggio continuo.
Monitoraggio dei prezzi
Il monitoraggio dei prezzi è uno degli utilizzi storici dello scraping.
Nell'e-commerce, può consentire di confrontare regolarmente le tariffe applicate su diverse piattaforme.
Le informazioni raccolte possono poi alimentare:
- una dashboard;
- degli avvisi;
- un'analisi di posizionamento;
- un sistema di pricing.
È tuttavia necessario tenere conto dei diritti applicabili e delle condizioni contrattuali dei siti interessati. Alcune piattaforme regolamentano o vietano esplicitamente gli strumenti di estrazione automatica.
Raccolta di recensioni dei clienti
Le recensioni pubbliche possono essere utili per identificare le aspettative, le obiezioni o i motivi di insoddisfazione dei consumatori.
Un'analisi strutturata può, ad esempio, mettere in luce:
- le funzionalità più apprezzate;
- i problemi segnalati regolarmente;
- le aspettative ricorrenti;
- il vocabolario utilizzato dai clienti;
- gli elementi distintivi dei concorrenti.
La raccolta di recensioni deve tuttavia rispettare i diritti associati ai contenuti e, se necessario, i dati personali presenti nei contributi.
Ricerca di potenziali clienti
Lo scraping può aiutare a identificare le organizzazioni che corrispondono al profilo del cliente ideale.
È in particolare possibile ricercare segnali come:
- l'attività dell'azienda;
- la sua posizione geografica;
- alcune assunzioni;
- l'utilizzo di tecnologie specifiche;
- il suo sviluppo su nuovi mercati;
- alcuni cambiamenti visibili pubblicamente.
L'obiettivo è ottenere dati di contesto che consentano di dare priorità alla prospezione.
La raccolta di un indirizzo email rappresenta tuttavia una problematica distinta. Per approfondire l'argomento, consulta anche la nostra guida dedicata ai metodi per trovare gli indirizzi email delle aziende.
Arricchimento di database
Un database esistente diventa gradualmente obsoleto: aziende che hanno cambiato indirizzo, nuovi collaboratori, cambi di mansione o informazioni mancanti.
Lo scraping può contribuire a un processo di arricchimento dei dati cercando automaticamente alcune informazioni complementari.
Una fase di verifica rimane tuttavia indispensabile. Le informazioni accessibili online possono essere datate, contraddittorie o errate.
Analisi SEO
Lo scraping è molto diffuso anche negli strumenti SEO.
Permette in particolare di recuperare:
- tag title;
- meta description;
- titoli Hn;
- link interni;
- codici HTTP;
- tag canonical;
- informazioni presenti nelle pagine;
- dati relativi alla struttura dei link interni.
I crawler SEO utilizzano esattamente questa logica per scansionare un sito e analizzarne la struttura.
Lo scraping è legale?
Non esiste una risposta universale a questa domanda.
Lo scraping non è automaticamente vietato, ma il semplice fatto che un'informazione sia accessibile da un browser non significa che possa essere copiata, archiviata e riutilizzata senza alcuna restrizione.
La legalità di un progetto dipende in particolare:
- dai dati raccolti;
- dall'eventuale presenza di dati personali;
- dall'obiettivo del trattamento;
- dai diritti legati ai contenuti o ai database;
- dalle condizioni d'uso del sito;
- dalle modalità tecniche impiegate;
- dalla quantità di informazioni estratte;
- dal modo in cui i dati verranno successivamente utilizzati.
Cosa dice la normativa
Diversi insiemi di regole possono applicarsi simultaneamente.
Quando una banca dati rappresenta un investimento sostanziale, il diritto europeo riconosce al produttore di tale base il diritto di vietare l'estrazione o il riutilizzo di tutto o di una parte sostanziale del suo contenuto. La direttiva europea sulle banche dati mira inoltre a limitare alcune estrazioni ripetute e sistematiche di parti non sostanziali quando queste pregiudicano il normale sfruttamento della banca dati.
I diritti d'autore possono entrare in gioco anche quando gli elementi raccolti costituiscono opere protette: testi, fotografie, creazioni grafiche o altri contenuti originali.
Infine, i dati personali sono soggetti alle norme del GDPR.
È quindi necessario ragionare progetto per progetto, piuttosto che cercare una regola generale secondo cui "tutto lo scraping è consentito" o "tutto lo scraping è vietato".
Scraping e GDPR
Il GDPR diventa rilevante non appena le informazioni raccolte consentono di identificare, direttamente o indirettamente, una persona fisica.
Ciò può riguardare in particolare:
- nome e cognome;
- un indirizzo email nominativo;
- un numero di telefono personale o professionale associato a una persona;
- un profilo individuale;
- alcune informazioni professionali associate a una persona.
Il Garante per la protezione dei dati personali ricorda esplicitamente che i dati personali accessibili pubblicamente su Internetrimangono dati personali. La loro natura pubblica non ne consente quindi il libero riutilizzo per qualsiasi finalità.
Un titolare del trattamento deve, tra le altre cose, stabilire una base giuridica, rispettare i principi di finalità e minimizzazione, informare gli interessati quando richiesto e consentire loro di esercitare i propri diritti.
Il Garante raccomanda inoltre, nell'ambito dell'estrazione di dati pubblicamente accessibili, di limitare la raccolta ai soli dati necessari e di definire a monte criteri precisi per ridurre le informazioni raccolte.
Per approfondire questa tematica in un contesto commerciale, consulta il nostro contenuto dedicato alle regole di prospezione commerciale e Garante privacy.
Le condizioni d'uso dei siti web
Le condizioni generali di utilizzo costituiscono un ulteriore elemento da verificare prima di effettuare lo scraping di un sito.
Alcune piattaforme vietano esplicitamente:
- i robot;
- crawler non autorizzati;
- scraping;
- estrazione automatizzata;
- aggiramento delle limitazioni di accesso.
LinkedIn, ad esempio, specifica attualmente nel proprio Accordo per l'utente che è vietato sviluppare o utilizzare software, script, robot, crawler o tecnologie destinate allo scraping o alla copia dei propri servizi, inclusi i profili e altri dati della piattaforma.
Anche le condizioni di Google regolano l'accesso automatizzato ai contenuti e vietano in particolare l'uso di mezzi automatizzati quando contravvengono alle istruzioni leggibili dalle macchine presenti nelle pagine, come alcune direttive robots.txt.
Alcune condizioni di servizio di Amazon vietano esplicitamente l'uso di tecniche di data mining, robot o strumenti simili di raccolta ed estrazione senza autorizzazione.
Prima di avviare uno scraper su una piattaforma di terze parti, leggere le condizioni d'uso non è quindi una formalità: è una fase del progetto.
I rischi legali
Un progetto non adeguatamente regolamentato può esporre l'azienda a diversi rischi:
- contestazioni in materia di protezione dei dati;
- violazione contrattuale delle condizioni di un servizio;
- violazione dei diritti su una banca dati;
- violazione del diritto d'autore;
- blocco o eliminazione di un account;
- restrizioni tecniche;
- richiesta di cessazione della raccolta;
- contenzioso con il gestore della piattaforma.
Il livello di rischio aumenta in particolare quando l'estrazione riguarda volumi ingenti, si basa sull'aggiramento di protezioni o concerne informazioni personali sensibili o non pertinenti.
Le buone pratiche per rimanere conformi
Prima di avviare qualsiasi progetto di scraping, prepara una checklist.
Inizia identificando con precisione la fonte e lo scopo della raccolta.
Verifica quindi:
- le condizioni d'uso del sito;
- le eventuali istruzioni destinate ai robot;
- la natura personale o meno dei dati;
- la base giuridica quando si applica il GDPR;
- i diritti associati ai contenuti o alla banca dati;
- la quantità effettivamente necessaria;
- le modalità di informativa e di esercizio dei diritti;
- il periodo di conservazione;
- le misure di sicurezza applicate ai dati.
Per progetti di una certa rilevanza, una validazione legale preventiva è molto più semplice che tentare di correggere una raccolta non conforme dopo aver già archiviato milioni di dati.
Quali strumenti utilizzare per fare scraping?
Non esiste uno strumento di scraping migliore in assoluto.
La scelta dipende soprattutto dal livello tecnico dell'utente, dalla complessità delle pagine, dal volume di estrazione e dal livello di automazione desiderato.
Per aiutarti a scegliere, ecco una prima sintesi:
Gli strumenti no-code
Gli strumenti no-code consentono di creare uno scraper senza dover sviluppare interamente un programma.
Sono particolarmente interessanti per:
- le esigenze puntuali;
- i team marketing;
- i test rapidi;
- i progetti che non richiedono un'architettura complessa.
Octoparse
Octoparse offre un approccio visivo al web scraping che permette di selezionare i dati desiderati e creare flussi di lavoro senza dover scrivere interamente il codice dello scraper.
La piattaforma punta in particolare sulla creazione di scraper no-code e sull'estrazione da siti dinamici.
Octoparse può essere interessante quando si desidera rapidamente:
- estrarre elenchi;
- gestire una paginazione;
- organizzare i dati;
- automatizzare attività ricorrenti.
La sua semplicità non esime ovviamente dal verificare che la raccolta prevista sia autorizzata.
ParseHub
Anche ParseHub si basa su un'interfaccia visiva.
L'utente può selezionare direttamente sulla pagina le informazioni che desidera recuperare. La piattaforma dichiara di supportare alcune interazioni con pagine che utilizzano AJAX, moduli o menu a tendina e di consentire l'esportazione in formato JSON o Excel.
Può essere adatto agli utenti che desiderano effettuare lo scraping di pagine interattive senza sviluppare un crawler completo.
Web Scraper
Web Scraper è noto soprattutto per la sua estensione del browser che permette di costruire sitemap di estrazione.
Un'offerta cloud consente poi di aggiungere funzioni come:
- pianificazione ;
- API ;
- esecuzione automatizzata ;
- esportazione ;
- monitoraggio delle attività.
La documentazione ufficiale presenta in particolare queste funzionalità nella sua offerta Web Scraper Cloud.
Le librerie per sviluppatori
Non appena il progetto diventa specifico, voluminoso o fortemente integrato nel sistema informativo aziendale, le soluzioni programmatiche offrono un maggiore controllo.
Beautiful Soup
Beautiful Soup è una libreria Python che permette di estrarre informazioni da documenti HTML e XML.
Consente in particolare di navigare e interrogare l'albero di un documento per ritrovare facilmente i tag o gli attributi desiderati.
È particolarmente indicata per:
- analizzare una pagina HTML ;
- selezionare elementi ;
- estrarre testi e attributi ;
- pulire determinate strutture.
Beautiful Soup, tuttavia, non è un browser. Utilizzata da sola, non rappresenta quindi la soluzione più adatta quando i dati richiedono l'esecuzione complessa di JavaScript prima di apparire.
Scrapy
Scrapy è un framework Python appositamente progettato per il crawling e il web scraping.
La sua documentazione lo presenta come un framework di alto livello che permette di navigare nei siti ed estrarne dati strutturati.
Diventa particolarmente interessante quando il progetto deve gestire:
- numerose pagine;
- diversi tipi di URL;
- regole di crawling;
- pipeline di elaborazione;
- estrazioni importanti e ripetute.
Il suo apprendimento richiede competenze maggiori rispetto a una soluzione no-code, ma permette di costruire architetture molto più personalizzate.
Selenium
Selenium permette di automatizzare un vero browser.
Il programma può quindi riprodurre interazioni come:
- aprire una pagina;
- cliccare;
- inserire un testo;
- selezionare un elemento;
- attendere che un contenuto appaia.
Il progetto Selenium indica che WebDriver pilota i browser in modo nativo e consente l'automazione delle principali tecnologie di navigazione.
Questo approccio è utile quando il contenuto dipende fortemente dalle interazioni effettuate nella pagina.
È tuttavia generalmente più pesante di una semplice richiesta HTTP per le pagine statiche.
Playwright
Playwright è anch'essa una soluzione di automazione del browser.
Consente in particolare di controllare Chromium, Firefox e WebKit.
Per progetti di scraping che coinvolgono applicazioni web moderne, può essere utilizzato in particolare per:
- caricare una pagina dinamica;
- attendere determinati elementi;
- eseguire azioni;
- recuperare il contenuto generato dopo l'esecuzione di JavaScript.
Come Selenium, tuttavia, va utilizzato solo quando tale complessità è realmente necessaria.
Le piattaforme di scraping online
Oltre agli strumenti installati localmente, oggi esistono numerose piattaforme che offrono un'infrastruttura completa per la raccolta dati.
Questi servizi possono gestire una parte di:
- esecuzione degli scraper;
- pianificazione;
- archiviazione;
- monitoraggio;
- esportazione;
- integrazione tramite API.
Il loro vantaggio è principalmente operativo: l'azienda evita di dover mantenere internamente l'intera infrastruttura tecnica.
In cambio, i costi possono aumentare rapidamente in base al volume e alla frequenza di esecuzione.
Per utilizzi direttamente orientati alla prospezione commerciale, può essere utile confrontare lo scraping con unsoftware di prospezione B2Bgià in possesso di dati o funzionalità adatti alle proprie esigenze.
Limiti e difficoltà dello scraping
Uno scraper perfettamente funzionante al momento della creazione non lo rimarrà necessariamente nel tempo.
Il web è in continua evoluzione: modifiche alla struttura HTML, cambi di URL, nuove autenticazioni, variazioni nella paginazione o comparsa di nuove protezioni.
Le protezioni anti-scraping
I siti possono implementare diversi meccanismi volti a rilevare o limitare gli accessi automatizzati.
Ad esempio:
- limitazione del numero di richieste;
- controllo del comportamento di navigazione;
- autenticazione;
- restrizioni di accesso;
- rilevamento di traffico automatizzato;
- blocco temporaneo.
L'obiettivo di un progetto professionale non dovrebbe essere quello di intraprendere una corsa continua per aggirare tali protezioni.
Quando un sito manifesta chiaramente la volontà di limitare l'accesso automatico, la soluzione migliore consiste nel cercare un'API, una licenza, una partnership o un'altra fonte di dati.
I CAPTCHA
I CAPTCHA servono principalmente a distinguere un utente umano da un sistema automatizzato.
Quando uno scraper attiva regolarmente dei CAPTCHA, questo costituisce solitamente un segnale: il sito non desidera che tale navigazione venga automatizzata in queste condizioni.
Cercare sistematicamente di aggirare questo meccanismo aumenta sia la complessità tecnica che i rischi associati al progetto.
Le limitazioni dell'indirizzo IP
Un server può anche limitare il numero di richieste provenienti dallo stesso indirizzo IP.
Un aumento improvviso del traffico può essere considerato abusivo, anche quando le pagine sono accessibili pubblicamente.
L'approccio più corretto consiste quindi nel:
- rallentare il ritmo di raccolta;
- distanziare le richieste;
- memorizzare nella cache le informazioni già recuperate;
- evitare di ricaricare inutilmente le stesse pagine;
- utilizzare un'API quando disponibile;
- richiedere un'autorizzazione quando il volume diventa consistente.
Siti che utilizzano JavaScript
Le moderne applicazioni web spesso visualizzano parte delle informazioni solo dopo l'esecuzione di JavaScript.
In questo caso, una semplice richiesta HTML può restituire una pagina quasi vuota.
Si possono quindi valutare due soluzioni:
- identificare una fonte strutturata autorizzata che permetta di ottenere i dati;
- utilizzare un browser automatizzato come Selenium o Playwright.
La seconda opzione, tuttavia, consuma più risorse e richiede generalmente una maggiore manutenzione.
La qualità dei dati raccolti
Lo scraping non garantisce mai che i dati ottenuti siano esatti.
Una pagina web può contenere:
- informazioni obsolete;
- valori formattate in modo errato;
- duplicati;
- dati parziali;
- informazioni incoerenti.
Uno scraper che funziona perfettamente può quindi produrre una base di dati di scarsa qualità.
Ecco perché il controllo e la pulizia devono essere considerati parte integrante del progetto, e non un'operazione facoltativa da eseguire in un secondo momento.
Come realizzare un progetto di scraping di successo?
Definire i dati da raccogliere
Un errore comune consiste nell'iniziare dallo strumento.
La domanda giusta non è: "Quale scraper utilizzeremo?"
La prima domanda dovrebbe essere:"Di quali dati abbiamo realmente bisogno?"
Formalizzate con precisione:
- la fonte;
- i campi;
- la frequenza;
- il volume;
- l'utilizzo previsto;
- il periodo di conservazione.
Questa fase riduce notevolmente la complessità del progetto e consente inoltre di rispettare meglio il principio di minimizzazione quando si tratta di dati personali.
Rispettare i limiti dei server
Uno scraper deve evitare di creare un carico inutile sul sito di destinazione.
Una raccolta ragionevole si basa in particolare su:
- una frequenza controllata;
- ritardi tra le richieste quando necessario;
- l'assenza di download ripetuti degli stessi dati;
- il rispetto delle limitazioni indicate;
- l'utilizzo di un'API dedicata, se disponibile.
Un'estrazione più lenta ma affidabile e conforme è solitamente preferibile a un volume massimo ottenuto per poche ore prima di un blocco totale.
Pulire e strutturare i dati
I dati grezzi sono raramente utilizzabili direttamente.
Spesso è necessario:
- normalizzare i nomi;
- rimuovere gli spazi inutili;
- armonizzare le date;
- convertire le valute;
- standardizzare i numeri di telefono;
- rimuovere i duplicati;
- identificare i dati mancanti.
Un progetto di estrazione deve quindi prevedere un vero e proprio pipeline:
raccolta → convalida → pulizia → arricchimento → archiviazione → utilizzo.
Automatizzare le estrazioni
Uno scraper eseguito manualmente può bastare per un'analisi occasionale.
Per un monitoraggio quotidiano o per l'aggiornamento regolare di un database, è invece necessario prevedere un'esecuzione automatica.
L'automazione può includere, tra le altre cose:
- un'attivazione quotidiana o settimanale;
- il monitoraggio degli errori;
- l'invio di avvisi;
- il rilevamento dei duplicati;
- l'importazione automatica in un database o in un CRM.
Questa logica si inserisce più ampiamente nelle sfide della prospezione automatizzata quando la raccolta dati alimenta un processo commerciale.
Aggiornare i dati regolarmente
Un dato ha valore solo se rimane sufficientemente aggiornato per il suo utilizzo.
La frequenza ideale dipende dal contesto.
Il prezzo di un prodotto e-commerce può richiedere diversi controlli al giorno. Un'informazione istituzionale su un'azienda può essere aggiornata molto meno spesso.
La sfida consiste quindi nel definire una frequenza adeguata all'effettiva velocità di evoluzione delle informazioni.
Moltiplicare le estrazioni senza necessità aumenta i costi, il carico sui server e il volume di dati da elaborare, senza necessariamente generare più valore.
Scraping, crawling e API: quali sono le differenze?
Questi concetti sono simili, ma non indicano esattamente la stessa operazione.
Scraping vs Crawling
Il crawling consiste principalmente nelnavigare tra le pagine e scoprire URL.
Lo scraping consiste principalmente nell'estrarre determinati dati all'interno di tali pagine.
Un crawler può, ad esempio, partire da una home page, seguire tutti i link interni e scoprire 30.000 URL.
Uno scraper può poi aprire alcune di queste pagine e recuperarne il titolo, il prezzo o qualsiasi altro dato ricercato.
Le due tecniche sono quindi spesso utilizzate insieme.
Scraping vs Data Mining
Lo scraping riguarda la raccolta.
Il data mining riguarda piuttostol'analisi dei dati per identificare tendenze, relazioni o modelli.
Facciamo un esempio:
- estrarre 100.000 recensioni dei clienti = raccolta;
- analizzare queste recensioni per rilevare i principali motivi di insoddisfazione = data mining o analisi dei dati.
Lo scraping produce quindi spesso la materia prima che verrà poi analizzata.
Scraping vs API
Un'API è un'interfaccia organizzata che permette a due sistemi informatici di comunicare.
Quando interroghi un'API, ricevi solitamente una risposta strutturata in modo diretto.
Con lo scraping, spesso devi:
- scaricare una pagina;
- identificare le informazioni nella sua struttura;
- estrarle;
- trasformarle.
Un'API è generalmente più stabile quando il fornitore la mette ufficialmente a disposizione per lo scopo richiesto.
Ecco le principali differenze:
Quando preferire un'API rispetto allo scraping?
Quando un'API ufficiale permette di ottenere esattamente i dati desiderati a condizioni compatibili con il tuo progetto, rappresenta solitamente la scelta migliore.
Offre spesso:
- una struttura dati stabile;
- una documentazione;
- regole di utilizzo chiare;
- quote note;
- minore dipendenza dal layout del sito.
Lo scraping diventa particolarmente pertinente quando non esiste un'interfaccia adeguata e la raccolta prevista rimane legalmente e contrattualmente possibile.
Gli errori da evitare
Effettuare lo scraping senza verificare le condizioni d'uso
Lanciare immediatamente uno strumento solo perché una pagina è accessibile da un browser è un approccio sbagliato.
Prima di qualsiasi automazione, consulta:
- i termini di servizio;
- le eventuali policy per gli sviluppatori;
- le regole per l'accesso automatizzato;
- le indicazioni destinate ai crawler.
Questa verifica è particolarmente indispensabile sulle grandi piattaforme.
Raccogliere dati personali senza una base giuridica
Il fatto che una persona abbia pubblicato determinate informazioni su Internet non le trasforma in dati utilizzabili senza restrizioni.
Il Garante per la protezione dei dati personali ricorda che il recupero di dati pubblicamente accessibili online rimane soggetto al GDPR quando si tratta di dati personali.
Definisci quindi prima della raccolta:
- la finalità;
- la base giuridica;
- le categorie di dati realmente necessarie;
- le modalità di informativa;
- i diritti degli interessati;
- il periodo di conservazione.
Inviare troppe richieste
Uno scraper configurato male può inviare centinaia o migliaia di richieste in pochi secondi.
Ciò può:
- rallentare il sito;
- far scattare delle restrizioni;
- causare un blocco;
- rendere i risultati meno affidabili.
È meglio adattare la frequenza alle reali necessità ed eliminare le richieste inutili.
Trascurare la pulizia dei dati
Un'estrazione tecnicamente riuscita può produrre:
Parigi
PARIGI
Parigi
75000 Parigi
Per un essere umano, questi valori sembrano simili. Per un sistema informatico, possono diventare quattro voci distinte.
È quindi necessario prevedere una fase di standardizzazione prima dell'importazione nel CRM o nel database di produzione.
Utilizzare dati obsoleti
Un'informazione raccolta due anni fa non è necessariamente ancora corretta.
Questa problematica è particolarmente rilevante nella prospezione:
- collaboratori che hanno cambiato azienda;
- società che hanno cambiato sede;
- domini scaduti;
- attività che si sono evolute.
Conservate quindi la data di raccolta o di verifica quando la freschezza dell'informazione ha un valore operativo.
FAQ sullo scraping
Cos'è lo scraping?
Lo scraping è una tecnica che permette di estrarre automaticamente informazioni da pagine web o altre fonti digitali.
Un programma identifica gli elementi ricercati, li raccoglie e li trasforma generalmente in dati strutturati all'interno di un file CSV, Excel, JSON o di un database.
Lo scraping è legale?
Lo scraping non è né sistematicamente autorizzato né sistematicamente vietato.
La sua legalità dipende in particolare:
- dai dati interessati;
- dalle condizioni d'uso del sito;
- dal GDPR in presenza di dati personali;
- dai diritti sui contenuti;
- dai diritti applicabili alle banche dati;
- dall'uso che verrà fatto delle informazioni.
Prima di un progetto importante, si raccomanda quindi un'analisi giuridica adattata al caso concreto.
Qual è la differenza tra scraping e crawling?
Il crawling consiste essenzialmente nel navigare tra le pagine e scoprire nuovi URL.
Lo scraping consiste nell'estrarre i dati presenti all'interno di tali pagine.
Un crawler può quindi identificare 10.000 pagine di un sito, mentre uno scraper recupererà in seguito alcune informazioni presenti su quelle pagine.
Quali sono i migliori strumenti di scraping?
Lo strumento migliore dipende dal progetto.
Per un utente non tecnico, Octoparse, ParseHub o Web Scraper consentono di creare estrazioni con pochissimo codice.
Per uno sviluppatore, Beautiful Soup è ideale per l'analisi HTML, mentre Scrapy permette di costruire crawler più completi. Selenium e Playwright sono particolarmente utili quando è necessario automatizzare un browser e gestire pagine che dipendono fortemente da JavaScript.
È possibile fare scraping su LinkedIn?
Tecnicamente, esistono software in grado di estrarre le informazioni visualizzate su LinkedIn. Ciò non significa che tale pratica sia autorizzata dalla piattaforma.
Il Contratto di licenza di LinkedIn vieta attualmente l'uso di software, script, robot, crawler o tecnologie destinate a effettuare scraping o copiare i servizi, inclusi profili e altri dati. Vieta inoltre determinati mezzi automatizzati non autorizzati per l'accesso ai propri servizi.
È inoltre necessario tenere conto del GDPR quando un'estrazione riguarda dati personali.
Per un uso professionale, è quindi preferibile privilegiare le funzionalità e le interfacce ufficialmente autorizzate dalla piattaforma.
È possibile fare scraping su Google?
La stessa prudenza è necessaria con Google.
Le condizioni di Google vietano in particolare l'uso di mezzi automatizzati di accesso quando questi non rispettano le istruzioni leggibili dalle macchine indicate nelle proprie pagine.
La raccolta automatizzata massiva dei risultati di ricerca non deve quindi essere considerata liberamente autorizzata per impostazione predefinita.
Quando un'interfaccia ufficiale o una soluzione autorizzata permette di soddisfare le proprie esigenze, essa costituisce generalmente un'alternativa più affidabile.
Come automatizzare lo scraping?
Per automatizzare uno scraper, è necessario innanzitutto creare un processo di estrazione stabile, per poi programmarne l'esecuzione a intervalli regolari.
Un workflow può ad esempio:
- avviarsi ogni notte;
- raccogliere i nuovi dati;
- controllarne la validità;
- rimuovere i duplicati ;
- salvare i risultati ;
- aggiornare un database ;
- inviare un avviso in caso di errore.
Il sistema deve prevedere anche la gestione dei cambiamenti nella struttura delle pagine, poiché uno scraper può smettere di funzionare dopo una semplice modifica del sito target.
Quando utilizzare un'API invece dello scraping?
Un'API ufficiale dovrebbe essere generalmente preferita quando fornisce le informazioni necessarie a condizioni compatibili con il progetto.
Offre spesso una struttura più stabile, una documentazione e regole di utilizzo chiaramente definite.
Lo scraping mantiene tutto il suo valore quando non esiste un'API adeguata, a condizione di verificare preventivamente le condizioni di accesso al sito, i diritti applicabili e, qualora siano coinvolti dati personali, gli obblighi imposti dal GDPR.
