Web Scraping, Crawler, Bot: cosa sono e come si implementano?

[Voti: 46    Media Voto: 4.2/5]

Mr Robot has some RAM (1 of 3)

Al giorno d’oggi vanno molto di moda i servizi che recuperano dati da diversi siti web, li normalizzano in un formato unico utile al confronto e li presentano all’utente/cliente per la scelta dell’opzione più vantaggiosa.

Servizi come questi confrontano di tutto: dai viaggi e voli aerei (eDreams, Expedia, Kayak), alle polizze assicurative (facile.it, segugio.it), ai conti correnti, alle offerte di luce e gas, agli hotels (trivago), ecc.

Tutti questi servizi o buona parte di essi, utilizza la tecnica del web scraping: dei software detti bot o crawler, scaricano e analizzano i dati presenti sulle pagine dei siti che offrono i servizi oggetto del confronto come spiegato bene su wikipedia (Web Scraping).

Noi di Garda Informatica abbiano realizzato per conto di nostri clienti bot per il web scraping di siti web.

Come abbiamo fatto?

Secondo noi, l’approccio migliore per la realizzazione di tali programmi consiste nell’utilizzo di un browser programmabile, detto in gergo headless browser (letteralmente browser senza testa). Il vantaggio di questa tecnica è che per il sito web non c’è differenza tra un utente umano e un bot.

Cos’è un browser?

Un browser è un programma che consente la navigazione sul web come: Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari, ecc.

Cosa significa headless?

Significa che è in grado di navigare come un comune browser, ma, non avendo un’interfaccia grafica, non mostrerà nulla all’utente dei dati elaborati.

E a cosa può essere utile?

Può essere utile in tutti quei casi in cui si vuole programmare un browser a comportarsi come se fosse un normale utente che sta navigando su internet: aprire pagine, reperire informazioni, seguire link, scaricare allegati, riempire form, cliccare su bottoni, effettuare login e logout, ecc.

Oltre al già citato impgiego nel settore del web scraping, un headless browser può essere utilizzato per automatizzare dei test di navigazione durante lo sviluppo di un sito web.

Attualmente i principali headless browser disponibili sono i seguenti:

  • PhantomJs: headless browser basato su WebKit (il motore di Chrome, Safari e Opera) e programmabile in JavaScript;

  • SlimerJs: browser programmabile in Javascript basato su Geko (il motore di Firefox) non nativamente headless;

  • Zombie.js: non è un vero e proprio browser privato del rendering, ma si basa sull’emulazione. Anche questo è programmabile in Javascript;

  • SeleniumHQ: non è headless, ma serve per lo stesso scopo.

Noi di Garda Informatica, abbiamo scelto PhantomJs per i seguenti motivi:

  • E’ l’unico vero headless browser, è l’unico cioè che può essere eseguito in un contesto dove non sia presente un window manager (es. via riga di comando su di un server Linux);
  • E’ multipiattaforma: è disponibile per Windows, Linux e Mac OS X;
  • E’ autocontenuto: l’eseguibile fornito dallo sviluppatore è un unico file senza dipendenze esterne e contenente già tutto il necessario per fare il suo dovere e quindi estremamente facile da installare (basta un copia e incolla);

In definitiva, con questa tecnologia, è possibile creare un software automatizzato che raccolta informazione dai siti web come se si trattasse di un instancabile utente umano. Questa possibilità apre innumerevoli scenari, ma va utilizzata nel rispetto delle norme e delle policy dei vari siti web.

Come sempre la tecnologia di per sè non è né buona né cattiva, tutto dipende dall’uso che se ne fa.

Hai bisogno di una soluzione di web scraping dei dati? oppure hai qualche domanda a cui non abbiamo dato risposta? Contattaci senza impegno!

Garda Informatica

Garda Informatica

Garda Informatica sviluppa software su misura nella forma di Web Application, App Ibride per iOS/Android/Windows Phone, Crawler Web, Gestionali Web o semplici Connettori per l'integrazione tra software di terze parti.
Garda Informatica