Setup Menus in Admin Panel

School.Dataninja.it

Dalla tabella HTML alla tabella per Excel e LibreOffice Calc – Video

Usare un'estensione del browser come DataMiner per trasformare le pagine web in fogli di calcolo.

È forse la modalità più semplice di scraping e permette di esportare i dati da una tabella in una pagina web (HTML) a una tabella in formato file, quindi in CSV ad esempio, usabile con fogli di calcolo come Microsoft Excel e LibreOffice Calc.

Alla fine del tutorial troverai un video di esempio. Vuoi guardarlo adesso? Clicca qui! 😉

Intro

In realtà se i dati che ti servono sono su una pagina web in formato tabellare, è altamente probabile che se selezioni interamente la tabella e la incolli in una tabella vuota su un foglio di calcolo, le colonne verranno già organizzate correttamente: dipende dal software che usi e soprattutto dalla versione. Perché ciò avvenga, il software che usi deve avere la capacità di capire che quelli che stai copiando sono dati di una tabella, deve cioè interpretarli correttamente. Tecnicamente l’interpretazione di una stringa in un altro tipo di dato si chiama parsing.

Usare un tool

Per esserti però certi che il passaggio da pagina web a tabella avvenga in maniera corretta e ordinata puoi usare degli altri stratagemmi, per esempio delle estensioni del tuo browser che sono in grado di farlo. Uno di questi è un’estensione del browser che si chiama Dataminer (qui il link alla versione Chrome, ma c’è anche per altri browser come Firefox).

scrape_dataminer+

La prima cosa da fare allora è cercare l’estensione Dataminer e installarla sul proprio browser, ci vogliono pochi attimini. In realtà le funzionalità di Dataminer sono molto più ampio, come spiegato in bassso ma per il momento concentriamoci sull’estrazione di dati da una tabella su pagina web.

Mettiamolo alla prova: un esempio

L’operazione può essere eseguita con ogni genere di tabella HTML ma come esempio possiamo utilizzare i dati del blog Fortress Europe, andando a questo indirizzo.

scrape_hp_fortress+

Già in homepage è presente una tabella che può fare al caso nostro, quindi è su questa che dobbiamo lavorare. Il nostro lavoro si divide in due passaggi.

Scraping in due step

  • Primo: selezionare alcune righe della tabella. Non è necessario selezionarle tutte, Dataminer ha bisogno di capire qual è lo schema dei contenuti per i quali vogliamo fare scraping e poi sarà lui ad individuare tutti i contenuti che hanno quello schema.

scrape_seleziona_testo+

  • Secondo: cliccare il tasto destro del mouse sulla parte selezionata e cliccare sul menu il pulsante di Dataminer.

Fatto questo, i dati compaiono organizzati già in una tabella: dobbiamo scegliere se salvarla in un file con formato CSV o visualizzarla su un Google Spreadsheet (il foglio di calcolo del pacchetto Google Drive).

scrape_no_link+

Sulla sinistra compare invece lo schema dei dati: sono i tag html che costruiscono lo schema e che Dataminer ha individuato. In pratica facendo questa operazione stiamo dicendo al software: “Per questa colonna prendi tutti i dati che si trovano in questa posizione nella pagina html”.

Estrarre anche i link

Il linguaggio con il quale stiamo “parlando” con l’applicazione si chiama XPATH, e può servirci per ottenere anche risultati migliori. Ad esempio: i contenuti presenti nella tabella potrebbero però essere non solo testuali ma contenere link o immagini. In questo caso bisogno aiutare Dataminer a capire come estrarre link o immagini.

Quindi al software a che punto dovremo dire: “Per questa colonna prendi tutti i dati che si trovano in questa posizione nella pagina html, ma fai attenzione perché mi serve anche il link”. Nella nostra tabella il link che di interessa è associato alla data, nella prima colonna. Dunque sappiamo che della prima colonna ci interessano sia le date che i link, ciascuno associato alla data di riferimento.

Dataminer riconosce così questi contenuti:

*[1] – Perché le date si trovano nella prima colonna

*[1]/a/@href – Perché l’indirizzo si trova linkato sulla data (quindi nella stessa colonna) ma un link in una pagina web viene indicato con il tag <a> e con l’attributo href, ed entrambe le informazioni vanno specificate.

Se invece di estrarre un link avessimo dovuto estrarre un’immagine, avremmo dovuto scrivere /img/@src invece di /a/@href (dove /img/ è la posizione è @src è l’attributo che intendiamo estrarre

scrape_si_link

Più info su XPATH

Per maggiori informazioni su XPATH è possibile consultare il post di Andrea Borruso sulle modalità di uso per costruire tabelle partendo da pagine web dispobinile qui.

Guarda il video di esempio

Letture: 263