Home
Il web grattato

18 Gennaio 2016

Il web grattato

di

Metà tecnologia e metà magia nera, l'arte dello web scraping recupera dati preziosi disseminati per il web nei modi più disparati.

Ti capita una o due volte tutti gli anni. Il cliente che ti sta spiegando quel che vorrebbe per la sua presenza su Internet, un attimo prima infervorato nel brief, si ferma per un secondo, come folgorato. Poi fa una faccia che ricorda parecchio quella di un bambino beccato colla mano nel vasetto della crema di nocciole e cioccolata. Sorride imbarazzato. E bofonchia: Certo, sarebbe bello se riuscissimo a recuperare le informazioni aggiornate in modo automatico.

Lo fai parlare e vieni a scoprire che una qualche parte del suo lavoro girerebbe meglio se potesse fare affidamento su informazioni pescate regolarmente dal web. In un caso che m’era capitato erano i valori delle quote latte — di modo che il mio cliente potesse capire quali sono le aziende agricole di maggiore rilevanza nel nostro Paese. In un altro volevano i dati della aste giudiziarie, nella speranza di calcolare quali immobili costituiscano un investimento formidabile. In un altro ancora gli stipendi offerti per alcune particolari mansioni lavorative.

In tutti i casi si tratta di dati che chiunque può leggere su Internet, ma sono polverizzati su decine o migliaia di pagine distinte e quel che servirebbe è una magia che le legga tutte, e di tutte raccolga il valore in un database o un foglio elettronico. In modo da comparare e ordinare e fare medie e serie storiche e chi più ne ha più ne metta.

Estrarre dati da molte pagine web e inserirli in un Excel o una base dati: il web scraping.

Un po’ come prendere una minestra e tirarne fuori zucchine, carote e patate ben divise.

Al che sorridi e gli spieghi che si può fare, e vedi dipingersi sul suo volto un sorriso tra l’incredulo e il colpevole. Ma è legale? Dottore, ci pensi: se lo fa Google lo possiamo fare anche noi, no? In realtà un avvocato (sfregandosi le mani e leccandosi le labbra, pensando alla prossima rata del suo undici metri) potrebbe dirvi che la cosa non è così ben definita, ma in sostanza se il cliente non pretende di ripubblicare quei dati, tal quali, facendoli suoi, allora non sta facendo altro che leggere informazioni pubbliche sul web, mettendo di mezzo un computer per aiutarlo.

Questa pratica è nota in gergo come web scraping, letteralmente grattare il web e, più che una scienza, è un’arte. Se il sito web da cui devi catturare l’informazione è fatto ammodo, allora siamo nel caso più semplice; basta una applicazione di XPath e un programmatore di media abilità che tiri le fila.

Ma se il sito è fatto male, se le sue componenti non sono etichettate come HTML5 vorrebbe e buon senso imporrebbe, o peggio ancora se c’è addirittura qualche errore di HTML inframmezzato al testo, XPath si mette a ruotare su se stesso come una trottola impazzita, si sfascia e prende figurativamente fuoco. A quel punto, come dice il proverbio, tra il dire e il fare c’è di mezzo l’espressione regolare. Uno strumento potentissimo inventato senza dubbio da un gruppo di matematici teorici. Si dice che alcuni di loro fossero anche in grado di allacciarsi le scarpe senza aiuto, ma forse è una leggenda. Comunque sia, di certo stavano cercando di fare del loro meglio per rendere inutilizzabili in pratica le loro idee. Il programmatore a questo punto sospira rumorosamente, accende la macchina del caffé in modalità ettolitro e si mette al lavoro.

L'autore

  • Luca Accomazzi
    Luca Accomazzi (@misterakko) lavora con i personal Apple dal 1980. Autore di oltre venti libri, innumerevoli articoli di divulgazione, decine di siti web e due pacchetti software, Accomazzi vanta (in ordine sparso) una laurea in informatica, una moglie, una figlia, una società che sviluppa tecnologie per siti Internet

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.