Indice dell’articolo
Che cos’è lo Scraping
Lo Scraping (dall’inglese to scrape che significa “grattare”, “raschiare”, “racimolare”) è una tecnica informatica che consiste nell’estrazione di dati in modo automatizzato attraverso strumenti in grado di scandagliare risorse web e collezionare informazioni.
Lo stesso Google attraverso i suoi parser utilizza metodi di scraping per analizzare i siti web ed estrarne i contenuti che utilizzerà poi per la propria catalogazione
Il metodo di estrazione dei dati tramite sistemi di scraping si basa sull’analisi del codice di un sito per riconoscerne strutture logiche simili ed essere quindi in grado di selezionare solo i dati di proprio interesse.
Facciamo un esempio per capire meglio.
Immaginiamo di volere fare una ricerca dei migliori film usciti nel 2017. Andiamo su Google e cerchiamo “migliori film 2017” e scegliamo un sito web.
Il sito in questione ha al suo interno una lista di tutti i film usciti nel 2017 con informazioni su genere, anno di uscita, nazionalità, etc…
Se volessi utilizzare questa lista dovrei fare un copia ed incolla della pagina rischiando però di portarmi dietro informazioni di cui non ho bisogno (es: formattazione, immagini, etcc.). Per fare un’estrazione pulita dei dati ci viene in aiuto proprio lo scraping che grazie al riconoscimento dell’architettura del sito ci permette di estrarre solo i dati di nostro interesse.
L’immagine sotto mostra come la pagina del listato dei film abbia delle informazioni ricorrenti:
- Titolo: h5 con classe = titolo;
- Genere: testo contenuto in una span con classe genere;
- Anno: testo contenuto in una span con classe anno.. e cosi via.
Grazie allo scraping posso identificare queste informazioni ed estrarle in maniera automatizzata. L’identificazione di queste informazioni può avvenire tramite diverse modalità che sfruttano la selezione di dati html o css (es: selettori jquery, nodi xml, selettori css, etc…).
Strumenti di Scraping
Lo Scraping è una tecnica che viene utilizzata ormai da molti anni e nel tempo sono cambiate le tecnologie per effettuare analisi automatizzate anche se la logica alla base dell’estrazione è rimasta sempre la stessa. In questo articolo vi indico 5 strumenti gratuiti (con possibilità di passare a versione premium per alcuni) che possono essere utilizzati per fare scraping.
Octoparse
Sito web: https://www.octoparse.com/
Octoparse è uno strumento di scraping potente ed efficace che permette di estrarre diverse tipologie di dati da sorgenti online. Grazie ad un’interfaccia semplice e visuale è possibile configurare il tool in pochi passi ed impostare l’architettura di estrazione senza dover scrivere una singola riga di codice.
Oltre alla versione gratuita Octoparse offre una versione premium dotata di proxy con rotazione automatica dell’ip, accesso all’api e gestione in cloud dei dati estratti.
Pro: molto semplice da utilizzare ma anche potente. Nella versione free permette di estrarre fino . a 10.000 record con l’utilizzo di 10 diversi crawlers.
Contro: purtroppo non offre una versione web ma è necessario scaricare il software stand alone che è compatibile solo con sistemi operativi Windows.
Oxylabs
Sito web: https://oxylabs.io/
Oxylabs Scraper API può estrarre dati Web pubblici anche dalle pagine web più complesse. Questo tool è l’ideale per operazioni di web scraping su larga scala. Esistono quattro tipologie di API Scraper: SERP Scraper API, Ecommerce Scrrper API, Real Estate Scraper API e Web Scraper API.
Ogni tipologia di scraper è appositamente creata per obiettivi diversi in modo da essere efficiente in funzione delle diverse esigenze dell’utente. Oxylabs Scraper API permette un test gratuito di 7 giorni e poi c’è la possibilità di scegliere tra differenti modelli di prezzo.
Pro: strumento che si adatta perfettamente allo scraping di diverse fonti dati e permette l’archiviazione dei dati direttamente in cloud (AWS S3 o GCS);
Contro: la prova gratuita di 7 giorni può essere non sufficiente per testare tutte le funzionalità dello strumento ma si può sempre aderire ad uno dei piani mensili
Parse Hub
Sito web: https://www.parsehub.com/
Parsehub è un software desktop disponibile per Windows, Mac e Linux dotato di caratteristiche molto avanzate tra cui la possibilità di sfruttare diversi IP (per evitare blocchi da parte del server), l’integrazione con sistemi di archiviazione (come dropbox) e la scansione di siti realizzati con tecnologie come Javascript e Ajax (difficili da scansionare da altri strumenti).
Nella versione gratuita Parsehub permette la gestione di 5 progetti e lo scraping di 200 pagine in 40 minuti.
Pro: strumento con funzioni molto avanzate.
Contro: peccato sia un software desktop e non abbia una versione web.
Data-Miner.io
Sito web: https://data-miner.io/
Data Miner è un tool di scraping che si integra con Google Chrome ed è composto da due componenti, l’esecutore (Data Miner) ed un creatore di “ricette” (Data Miner Beta).
Tramite l’estensione si possono creare delle ricette di scraping selezionando in maniera visuale i dati da estrarre nella singola pagina. Una volta creata la ricetta si visita il sito e si lancia lo strumento che procede all’estrazione e poi al download delle risorse.
Nella versione free lo strumento permette di estrarre fino a 500 pagine al mese.
Pro: lo strumento è molto semplice da utilizzare e premette l’estrazione di dati in pagine non visibili attraverso un sistema di navigazione in background.
Contro: il limite di 500 pagine/mese nella versione free può non essere sufficiente per alcuni progetti.
Webscraper.io
Sito web: http://webscraper.io/
Web Scraper è un’estensione di Google Chrome che si integra con la Console per Sviluppatori. Una volta lanciata, l’estensione permette di creare una sitemap del sito che si vuole “scrapare” selezionando i vari elementi e fornendo un’anteprima del risultato.
Al termine della creazione della sitemap basta lanciare l’estrazione e lo strumento ci fornisce una tabella con i dati scaricati esportabile in csv.
Pro: completamente gratuito e semplice da usare.
Contro: il sistema è molto basico e non permette estrazioni avanzate.
ScraperApi
Sito web: https://www.scraperapi.com
ScraperApi è un servizio pensato per chi fa attività di Scraping in modo massivo, infatti offre una API che permette di gestire attività di proxy rotation, risoluzione di CAPTCHAs, impostazione di headless browsers, in pratica tutto ciò che serve per evitare di essere bloccati durante l’attività di scraping.
ScraperApi mette a disposizione dei propri clienti oltre 20 milioni di IP in 12 differenti Paesi offrendo una una larghezza di banda illimitata ed un uptime garantito del 99,99% con piani di sottoscrizione che vanno dai 29$ ai 249$.
Pro: grazie a ScraperApi si possono gestire illimitate attività di scraping senza incorrere in blocchi di nessun tipo.
Contro: per utilizzarlo serve una competenza specifica nell’utilizzo delle API e nella programmazione orientata allo scraping
ScrapingBee
Sito web: https://www.scrapingbee.com/
ScrapingBee è una Web Scraper API che mette al servizio dell’utente un headless browser in grado di renderizzare una pagina web (vedendola come la vedrebbe un utente) ed estrarre le informazioni utili per lo scraping.
Una volta renderizzata la sorgente ScrapingBee permette di utilizzare librerie Js come React, Angulars e Vue.js per creare degli script di estrazione dei dati.
Per evitare blocchi da parte dei siti oggetto dello scraping ScrapingBee offre un servizio di proxies a rotazione che permette agli script di essere eseguiti in modo massivo senza su grandi quantità di dati.
Pro: per i meno esperti di programmazione ScraperBee mette a disposizione degli utenti uno Store API dove scaricare script preconfigurati per eseguire specifiche azioni su tantissimi siti (come Google, Instagram, Booking, etc..).
Contro: confrontato con altri servizi a parità di piani offre caratteristiche leggermente minori.
BONUS: Phantom Buster!
Sito web: https://phantombuster.com/
Se sei arrivato a leggere fino a qui meriti un bonus. Lo strumento in questione si chiama Phantom Buster (Acchiappafantasmi) e non è un tool di scraping classico che ti permette di estrapolare dati da qualsiasi fonte ma è uno strumento specifico che nasce per l’estrazione di informazioni da una serie di piattaforme come Facebook, Linkedin, Instagram, Google, Twitter e molte altre.
La cosa interessante di questo tool è che ha dei “flussi” preconfezionati che permettono in pochi passi di effettuare diversi tipi di estrazione; di seguito riporto solo alcuni esempi:
- Estrarre i membri di un gruppo Facebook o Linkedin;
- Estrarre i dati (compresi gli indirizzi email) da profili Linkedin;
- Estrarre le informazioni da Google Maps;
- Trovare indirizzi email di persone specifiche partendo da nome, cognome e nome dell’azienda;
- Estrarre i followers di un account Instagram;
- Trovare i siti web delle aziende a partire da una lista di ragioni sociali.
Insomma, Phantom Buster è una vera e propria chicca che permette di effettuare una serie di estrazioni che possono essere molto utili per fare azioni di marketing.
E la cosa ancora più interessante è che offre una versione completamente gratuita con un limite di 10 minuti di estrazioni al giorno ed un solo flusso di estrazioni; la versione premium è comunque molto abbordabile perché parte da 30$ per 1h di estrazioni al giorno e 5 flussi dati.
Articoli correlati
Sono un Consulente in Digital Marketing con oltre 10 anni di esperienza. Mi occupo di progettare e sviluppare strategie digitali per Piccole e Medie Imprese per aiutare le aziende ad ottenere il massimo ritorno dagli investimenti nei canali online.
Ho provato Portia, forse non lo so usare bene, ma ci ha messo ore e mi ha restituito soltanto 3 post.
Qualcuno lo ha provato? Mi sapete dire se Sbaglio qualcosa?
Ciao Andrea,
per la mia esperienza ha sempre funzionato correttamente. Tutto sta a selezionare le giuste informazioni da estrarre tramite i selettori CSS o Xpath. Poi una volta avviato il tool lo spider si occuperà di recuperare le informazioni che trova nel sito target.
Complimenti bell’articolo! Io dovrei fare lo scraper di documenti che mi arrivano, pdf e jpg, e la qualià di questi a volte è scarsa. Che strumento si potrebbe usare? Inoltre il dato che viene letto deve essere caricato in un DB, ma la parte difficile è quella di non inserire doppioni nel DB e di inserire il dato nel posto giusto. In pratica Ho un foglio stampato, leggo i dati e li inserisco in un form, posso automatizzare l’inserimento dei dati?
Ciao Gaspare, non conosco uno strumento preciso per fare quello di cui hai bisogno ma se provi a cercare su Google query come “pdf parser”, “scraping from pdf” o “pdf data scraping” trovi varie soluzioni che potrebbero fare al caso tuo.
L’idea di base è quella di convertire un pdf in un formato diverso come html o csv e da lì prendere i dati da utilizzare all’interno del tuo database. Se il pdf non è “leggibile” potresti provare anche un sistema di ocr (optical character recognition) per estrarre le informazioni.
Non ti saprei dire se i tool che trovi possono già essere sufficienti a fare quello di cui hai bisogno; eventualmente non lo fossero dovresti crearti un parser ad hoc.
Ciao Stefano, conosci un metodo/tool per effettuare uno scarping delle SERP di Google partendo da una lista di keyword? Grazie in anticipo e complimenti per l’articolo, molto utile!
Ciao Dario,
non ho capito bene la tua esigenza. Vuoi una lista dei risultati Google partendo da una lista di parole chiave (interrogare Google in modo massivo)? O partendo da una serp vuoi estrarre delle specifiche parole chiave?
Ciao Stefano avrei bisogno estrapolare da siti di brand ufficiali le liste dei loro negozi. solitamente bisognerebbe indicare il cap o la città in cui ci si trova per avere una piccola lista degli stores limitrofi. capisci bene che la trasformazione in csv impiega tantissimo lavoro e tempo. Mi sapresti indicare un software che potrebbe fare al caso mio. Grazie e complimenti per l’articolo
Ciao Beppe,
qualsiasi degli strumenti citati nel mio articolo possono fare al caso tuo. Questi strumenti di Scraping ti permettono di identificare all’interno di una pagina le informazioni ricorrenti che vuoi estrapolare (es: nome negozio, indirizzo, etc..); con un sistema visuale all’interno della pagina devi selezionare i dati che vuoi estrarre e poi al resto pensa lo strumento che ti fornisce queste informazioni in una tabella o in un file.
Ti consiglio di provarne qualcuno e scegliere quello che ritieni più semplice per il tuo caso.
Stefano
Ciao Stefano, ottimo articolo, ho usato webscraper.io in passato per racimolare alcune informazioni da un gruppo di Facebook, ho amministrato che era un compito abbastanza semplice e lo strumento era abbastanza buono per quello, ma per compiti più grandi hai considerato lo strumento Oxylabs RTC ? Sembra molto costoso, ma probabilmente c’è una ragione per questo.
Salve,
io avrei bisogno di scaricare tutto il contenuto html di una pagina e di effettuare l’upload sul mio hosting in automatico.
E’ possibile fare questo ? E quale sarebbe lo strumento più appropriato? Sapendo che per arrivare a questa pagina è necessario compiere delle azioni: Visitare la homepage, selezionale la pagina che mi interessa dal menù
(poichè se si accede digitando la url sul browers, si viene reindirizzati alla homepage).
Grazie mille
Buongiorno Giuseppe,
per scaricare tutto l’html (tutte le pagine) di un sito e uplodarlo su un suo server le consiglio di utilizzare un software come https://www.httrack.com/ o un sito come https://websitedownloader.io/.
CIao Stefano, Io sto cercando uno strumento che mi permetta, senza scrivere codice, di eseguire lo scraping di Instagram partendo da un hashtag specifico e che mi dica come output, nome/Idutente, url del post, url della foto pubblicata, datapubblicazione, e la caption del post.
Il volume dei dati è relativamente molto basso, parliamo di 100-1000 post mese. Varie delle soluzione che ho trovato sul web sono rivolte a volumi ben maggiori e poche sono specifiche per Instagram Hashtag collector, alcune delle quali richiedono anche di editare il codice qual ora ci fossero dei problemi.
Sapresti suggerirmi una soluzione adatta alle mie esigenze?
Complimenti per l’articolo, l’ho trovato molto interessante!
Ciao Alessandro, potresti provare a vedere se PhantomBuster fa al caso tuo.