Categories: HardwareSoftware

Estrarre dati da una pagina HTML: come si fa

Quante volte vi è capitato, per le ragioni più disparate, di dover estrarre dati da un sito web per poterli rielaborare ed eventualmente riutilizzare?

In questo articolo non ci occupiamo degli aspetti legali connessi con l’estrazione dei dati da una pagina HTML ma ci concentriamo invece sugli strumenti che permettono di raccogliere i dati in forma ragionata e strutturata per poi avere la possibilità di gestirli utilizzando, ad esempio, un normale foglio di calcolo.

I dati pubblicati nelle pagine web sono generalmente inseriti all’interno di tabelle, di tag div oppure entro altri tag HTML di vario genere.
Pochi sanno che Fogli Google e, in generale, le altre app della suite Drive mettono a disposizione alcune potenti funzioni per estrarre dati da una pagina HTML, anche se pubblicata su un server remoto.

Nell’articolo Foglio di calcolo: la potenza delle formule abbiamo spiegato quanto siano versatili le funzioni utilizzabili nei fogli elettronici per creare formule più o meno complesse.

Nell’articolo Importare dati da HTML Excel: come fare abbiamo invece presentato la funzione Google ImportHTML che consente di estrarre codice HTML da pagine web di qualunque sito.

Ancora più versatile è la funzione ImportXML che consente di importare dati partendo da vari tipi di dati strutturati, tra cui XML, HTML, CSV, TSV e feed XML RSS e ATOM (vedere questa pagina di supporto).

Per estrarre dati da un sito web, è sufficiente aprire un nuovo documento Fogli Google portandosi su Google Drive quindi cliccando su Nuovo, Fogli Google.

Dopo aver selezionato, ad esempio, la prima cella del foglio di calcolo, si potrà impostare la formula basata sull’utilizzo di ImportXML.

Il corretto utilizzo di ImportXML non può prescindere da un attento studio del sorgente HTML del sito dal quale si desiderano importare i dati.
L’importante è non scoraggiarsi mai: una soluzione per importare i dati pubblicati nella pagina HTML remota si trova sempre!

Estrarre dati da una pagina HTML con Google ImportXML

Il miglior modo per imparare l’utilizzo della funzione ImportXML è partire da qualche esempio pratico.

Si supponga che la pagina HTML contenente i dati d’interesse mostri una lista puntata o numerata costruita usando il tag li.
Per estrarre i dati contenuti in una lista HTML, è sufficiente ricorrere alla formula che segue:

=importxml(“http://urldellapaginaweb.com/nomepagina”;”//li”)

Se, all’interno di ciascun tag li, fosse contenuto un link (tag anchor), e si volesse estrarre solo il nome del link, basterà modificare la formula come segue:=importxml(“http://urldellapaginaweb.com/nomepagina”;”//li/a”)

La seguente formula, invece, consentirà di estrarre solo l’URL (attributo href di ciascun tag anchor contenuto all’interno dei tag li):

=importxml(“http://urldellapaginaweb.com/nomepagina”;”//li/a/@href”)

Per evitare di estrarre dati inutili, suggeriamo di individuare, ad esempio, il “contenitore” (tag div) che ospita le informazioni d’interesse.
Il tag div sarà contraddistinto, di solito, col nome di una classe CSS (class) o un ID.

Per fare in modo che la funzione Google estragga i dati contenuti in un certo div, basterà usare la seguente sintassi:

=importxml(“http://urldellapaginaweb.com/nomepagina”;
“//div[@class=’NOMECLASSE‘]//li”)

In questo modo le varie celle del foglio di calcolo Google verranno “popolate” recuperando le informazioni contenute nei tag li ospitati all’interno di ciascun div chiamato NOMECLASSE.

L’utilizzo di una funzione nidificata come la seguente permette invece di estrarre solamente il contenuto del secondo tag td dei div NOMECLASSE:

=index(importxml(“http://urldellapaginaweb.com/nomepagina”;
“//div[@class=’NOMECLASSE‘]//td”);2)

La volontà di estrarre il contenuto del secondo tag è indicata dal numero 2 all’interno della funzione index.
Nulla vieta, comunque, di usare una funzione più complessa, come la seguente per estrarre i dati dalla pagina web HTML a seconda del numero di riga del foglio elettronico (funzione ROW()):

=index(importxml(“http://urldellapaginaweb.com/nomepagina”;
“//div[@class=’NOMECLASSE‘]//td”);4*ROW())

Tutte le formule vanno incollate su un’unica riga.

Autore: IlSoftware.it

admin

Recent Posts

The Lian Li Hydroshift LCD 360S AIO Cooler Review: Sleek, Stylish, and Lively

Author: AnandTech Among the packed field of PC hardware manufacturers, Lian Li is a company…

28 Giugno 2024

Questa BELLISSIMA tastiera meccanica è in DOPPIO SCONTO con coupon!

Author: Tom's Hardware Alla ricerca di una tastiera meccanica di alta qualità che unisca versatilità,…

28 Giugno 2024

Steam ha svelato il suo tool integrato per la registrazione del gameplay: Beta già disponibile!

Author: GAMEmag Con un annuncio a sorpresa, Valve ha svelato uno strumento integrato di Steam…

28 Giugno 2024

Celebrating Pride month: How Diversity, Equity, and Inclusion drive success at Schneider Electric US Services

Author: Schneider Electric This audio was created using Microsoft Azure Speech Services Pride Month is…

28 Giugno 2024

La verità sui modelli usati per l’intelligenza artificiale: quali non sono open source

Author: IlSoftware Negli ultimi anni, nel settore delle soluzioni basate sull’intelligenza artificiale (IA) si è…

28 Giugno 2024

NASA OSIRIS-REx: trovati fosfati nei campioni dell’asteroide Bennu

Author: Hardware Upgrade La missione statunitense NASA OSIRIS-REx ha riportato sulla Terra 121,6 grammi di…

28 Giugno 2024