Fogli Google: come utilizzare la funzione importXML per il web scraping
Una delle caratteristiche più importanti di Fogli Google è la possibilità di importare contenuti direttamente dai siti web: la funzione importXML() di Fogli Google legge, infatti, i contenuti strutturati di un sito web e li trasferisce nel foglio di lavoro Google desiderato.
I due programmi di fogli di calcolo Fogli Google ed Excel hanno molti aspetti in comune, ma differiscono in alcuni punti essenziali, come evidenzia il nostro confronto tra Excel e Fogli Google.
La funzione di importazione “XML to Google Sheets” è particolarmente utile quando si desidera creare tabelle da dati forniti online. In questo articolo imparerete come utilizzare e sfruttare al meglio questa utile opzione.
Fogli Google: breve spiegazione della funzione importXML()
La funzione importXML() legge dati strutturati di progetti web e li inserisce nelle celle di un foglio di lavoro di Fogli Google.
Procedete nel modo seguente per eseguire la funzione nel software Google:
=importXML(URL, XPath)
importXML() di Fogli Google ha solo due parametri:
- URL: l’indirizzo web da cui si desidera estrarre i dati. Il modo più semplice per farlo è copiarlo direttamente dalla barra degli indirizzi del browser.
- XPath: indicazione della posizione specifica in cui sono posizionati i dati che si desidera importare.
Informazioni dettagliate su XPath sono disponibili nel nostro tutorial su XPath.
Se specificate i parametri direttamente nella funzione, è necessario racchiuderli tra virgolette. Per evitare di doverli inserire tra virgolette, è possibile scrivere i due parametri in due celle di una tabella e farvi quindi riferimento nella funzione della formula. In questo modo non è necessario inserire le virgolette.
- Tutti gli strumenti di Google che conosci
- Posta Gmail con indirizzo corrispondente al tuo dominio
- Assistenza clienti personalizzata
Casi d’utilizzo di importXML di Fogli Google
importXML() è molto versatile. Di particolare interesse sono le seguenti quattro possibili applicazioni:
- Creazione di liste di link
- Analisi di dati strutturati di siti web
- Estrazione di contenuto testuale
- Importazione di tabelle HTML
Nelle sezioni seguenti vi spiegheremo come utilizzare importXML in Fogli Google in base a questi quattro scenari d’utilizzo.
I fogli di lavoro di Google fanno parte della Google Workspace (ex G Suite) messa a disposizione da IONOS, incluso un dominio gratuito!
Creazione di liste di link
A volte si può avere la necessità di creare una lista ordinata di indirizzi web interessanti, che deve includere, tra l’altro, l’URL, il nome del sito web e una breve descrizione. Un buon punto di partenza per questo scenario d’uso è il sito Nodesign, ovvero una raccolta di link che presenta strumenti grafici per sviluppatori che hanno poca o nessuna dimestichezza con il design. I link vengono visualizzati in caselle contenenti ciascuna un’immagine, un titolo e una breve descrizione. Attualmente la raccolta contiene più di 140 voci.
A partire da questa raccolta, vogliamo creare una lista di link nei fogli di lavoro di Google con la funzione importXML(). Per farlo, procediamo così:
- Determinare i contenuti nel codice sorgente del sito web
In questo caso, abbiamo bisogno dell’URL, del testo di ancoraggio (cioè il testo attivo del link) e di una breve descrizione. Visualizziamo quindi il codice sorgente direttamente nel browser (tasto F12 o tasto destro del mouse e “Ispeziona”) e selezioniamo la prima scheda. Qui troviamo, sotto il tag <h5> le informazioni desiderate: l’URL (1), il testo di ancoraggio al link (2) e una breve descrizione (3).
- Definire XPath
Nel secondo passaggio vengono definite le informazioni sul percorso (XPath) per le tre informazioni di cui abbiamo bisogno:
URL: l’URL è un attributo del tag <a> che è posizionato sotto il tag <h5>. L’XPath è quindi il seguente:
//h5/a/@href
Testo di ancoraggio: il testo di ancoraggio è il contenuto del tag <a> che abbiamo già definito sopra: //h5/a. Riprendiamo l’XPath di sopra togliendo l’attributo @href.
Descrizione breve: l’XPath è, in questo caso, un po’ più complicato perché non si trova allo stesso livello gerarchico del tag <a>. Se prendessimo semplicemente il paragrafo <p> come XPath, i testi non corrisponderebbero più all’URL. Pertanto, dobbiamo definire come paragrafo che contiene la descrizione breve l’elemento che si trova allo stesso livello gerarchico dopo il tag <h5>:
//h5/following-sibling::p
- Applicare la funzione nel foglio di lavoro di Google
Ora scriviamo un’istruzione importXML() in una colonna per ciascuna delle tre voci. Dobbiamo inserirle solo sulla prima riga; il programma carica automaticamente le righe rimanenti. Anche la formula stessa viene sovrascritta con il contenuto.
Per non perdere la visione d’insieme, inseriamo una riga vuota in alto e immettiamo nuovamente la funzione come riferimento. Questa volta aggiungiamo però un apostrofo all’inizio, in modo che la formula non venga eseguita, ma trattata come testo semplice.
È possibile modificare questa tabella nel modo consueto. Le singole celle contengono i dati effettivi e non la formula.
Ottieni la posta elettronica Exchange e tutte le ultime versioni delle tue applicazioni preferite su tutti i tuoi dispositivi.
Analisi di dati strutturati di siti web
La lista di link appena generata può ora essere analizzata in diversi modi, se necessario. Ad esempio, potremmo aggiungere il meta title, la meta description, la lingua e la codifica per ogni URL individuato, che sono informazioni rilevanti ai fini SEO.
A tale scopo, scriviamo le informazioni XPath nella riga superiore e inseriamo la funzione nella seconda riga (seconda colonna nell’esempio):
=importXML($A2,B$1)
La formula prende l’URL dalla prima colonna e l’XPath dalla riga superiore. Per espandere la formula verso il basso e verso destra, impostiamo la prima colonna e la prima riga come riferimento assoluto (con il simbolo $).
Le voci #NV indicano che le informazioni ricercate non sono state trovate nella pagina web.
Per scollegare la tabella dai siti linkati, possiamo evidenziarla, copiarla e inserirla in un nuovo foglio di calcolo utilizzando la combinazione di tasti [Shift] + [Ctrl] + [V].
Estrazione di contenuto testuale
Grazie ai progressi compiuti nel riconoscimento testuale attraverso l’intelligenza artificiale, nota anche come Natural Language Processing, cresce la necessità di estrarre maggiori quantità di testo per fini di analisi dei siti web.
Un buon esempio sono i quotidiani, gli aggregatori di notizie e le pagine di rassegna stampa, che forniscono informazioni preziose per l’analisi delle tendenze.
Per la nostra dimostrazione applicativa, scegliamo la rassegna stampa newstral.com. Il nostro scopo è semplicemente quello di estrarre un elenco di tutti i comunicati stampa (titoli). Per fare questo, procediamo come segue:
- Determinare i contenuti nel codice sorgente del sito web
Visualizziamo il codice sorgente (tasto funzione F12 o tasto destro “Ispeziona”), selezioniamo un titolo e guardiamo come è strutturato. In questo caso, la struttura è molto semplice: il titolo è il testo di ancoraggio del link (linea inferiore):
- Definire XPath
Per estrarre solo i titoli e non tutti gli altri link sulla homepage, dobbiamo tuttavia definire l’XPath in modo più preciso: vogliamo trovare solo i tag <a> della classe “headline”, vale a dire solo quelli che si trovano all’interno della sezione della classe “headlines-container”.
//div[@class="headlines-container"]/ul/li/span/a[@class="headline"]
- Applicare la funzione nel foglio di lavoro di Google
Inseriamo l’URL e l’XPath in un foglio di lavoro Google vuoto nella prima colonna a sinistra. Da lì possiamo “recuperarli” comodamente per scrivere la funzione:
(Cella B1) =importXML(A1,A2)
(Cella B2) =importXML(A1,A3)
Il risultato è una lista di titoli. Il vantaggio è che possiamo aggiornare questa lista in qualsiasi momento con F5 in modo che visualizzi sempre il contenuto più recente.
Volete imparare altri trucchi per Fogli Google? Scoprite qui come creare menu a tendina in Fogli Google.
Importazione di tabelle HTML
Per trasferire una tabella da un sito web a Fogli Google basta una singola formula. Per esempio, prendiamo una tabella sui modelli di Samsung Galaxy da un articolo di Wikipedia: per importare questa tabella, abbiamo bisogno soltanto del tag <table> nell’XPath. Tuttavia, dobbiamo capire quanti tag <table> appaiono davanti alla tabella di nostro interesse. La tabella che vogliamo importare è la terza della pagina web. La formula si presenta quindi così:
=importXML(“https://en.wikipedia.org/wiki/Samsung_Galaxy”, “//table[3]/tbody/*”)
Ecco qua! Con una singola formula nella cella B1, abbiamo importato correttamente nel foglio di calcolo l’intera tabella con tutte le righe e le colonne.
Come vedete, la funzione di importazione “XML to Google Sheets” è estremamente versatile e consente di risparmiare molto tempo e lavoro.
Molte piattaforme di social media e grandi rivenditori online come Amazon vietano il web scraping. Ricordatevi quindi di leggere i termini di utilizzo prima di testare le vostre nuove competenze di web scraping su queste piattaforme.