Libreria molto utile messa a disposizione da Ivan Kutil, sviluppatore Google
Parsing HTML con una Libreria pronta in Google Apps Script
Uno dei vantaggi nell'utilizzare Google Apps Script per la realizzazione di un'applicazione risiede nel potersi avvalere di diverse Librerie, sia proprie che create da altri sviluppatori (e rese disponibili) al fine di semplificare e snellire la scrittura del codice. Nel caso specifico ho trovato una libreria molto utile messa a disposizione da Ivan Kutil, un esperto sviluppatore Google, che permette con poche righe di codice di poter definire una pagina bersaglio e, tramite l'indicazione di apertura e di chiusura di determinati tag HTML, andarne a recuperare il contenuto.
Se non volete avvalervi di una libreria esterna (considerando che il loro utilizzo può essere in alcuni casi sconsigliato come descritto nell'articolo "Google Apps Script: best practice per il miglioramento delle performance") per raggiungere lo scopo potete fare affidamento al mio tutorial "Parsing HTML di una pagina web con Google Apps Script" dove mostro come ottenere lo stesso risultato con una semplice funzione esportabile in qualsiasi progetto Apps Script.
In un nuovo file di Google Apps Script aggiungere la libreria appena presentata tramite l'inserimento del seguente ID nella modal che appare selezionando dal menù: Resources -> Libraires...
M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
Salvando dovrebbe comparire nella lista delle librerie aggiunte una voce con titolo 'Parser'.
A questo punto, ispezionando la pagina web bersaglio identificare i tag HTML presenti prima e dopo il contenuto che si intende recuperare (nel caso specifico il numero dei commenti in un articolo sul mio blog, link all'articolo, Fig. 1) e copiarli per inserirli nella funzione che andremo ad utilizzare.
Inserire queste informazioni nelle variabili 'url', fromText' e 'toText' all'interno dello script di seguito (dove con 'url' si intende l'indirizzo della pagina target, con 'fromText' la porzione di codice HTML identificativa precedente all'informazione da recuperare e con 'toText' quella immediatamente successiva):
function getData() {
var url = "http://www.michelepisani.it/articoli/cookie-policy-come-gestire-analytics-adsense-e-i-bottoni-social/";
var fromText = '<a href="#comments" class="icon-link"><span class="icon-text">&#59160;</span>';
var toText = 'commenti</a>';
var content = UrlFetchApp.fetch(url).getContentText();
var scraped = Parser
.data(content)
.from(fromText)
.to(toText)
.build();
Logger.log(scraped);
return scraped;
}
Eseguendo lo script di cui sopra, all'interno della finestra di log è possibile notare che che è stato recuperato il numero dei commenti visualizzato per l'articolo in questione che, nel caso specifico, è 38 (Fig. 2):
Nota: per poter prendere visione di un log delle attività dello scraping, ad esempio allo scopo di effettuare il debug in caso di errori nel recupero dei valori, è possibile utilizzare la funzione .setLog() da inserire nello scipt prima di di .build(), il risultato sarà qualcosa simile al seguente:
[17-08-17 01:52:22:274 CEST] Index offset 0.0
[17-08-17 01:52:22:275 CEST] from_mode
[17-08-17 01:52:22:276 CEST] Iterate offset: 21277.0
[17-08-17 01:52:22:276 CEST] to:21357
[17-08-17 01:52:22:277 CEST] {from=21354.0, to=21357.0}
[17-08-17 01:52:22:278 CEST] 38
A chi fosse sfuggito a inizio articolo, se non volete avvalervi di una libreria esterna per raggiungere lo scopo potete fare affidamento al mio tutorial "Parsing HTML di una pagina web con Google Apps Script" dove mostro come ottenere lo stesso risultato con una semplice funzione esportabile in qualsiasi progetto Apps Script.
Non ci sono commenti
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
scrivi un commento