JavaScript, HTML, CSS e... !
0 commenti

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.



Pagina target con evidenziato il valore da recuperare ed il relativo codice HTML

Fig. 01 - Pagina target con evidenziato il valore da recuperare ed il relativo codice HTML


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):



Risultato del parsing HTML ottenuto con la libreria segnalata visualizzato nella finestra di log

Fig. 02 - Risultato del parsing HTML ottenuto con l'uso della libreria segnalata visualizzato nella finestra di log


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.

Tags

Michele Pisani

Michele Pisani

Sviluppatore Javascript ed esperto in Digital Analytics

L'esperienza nel settore Digital Analytics unita ad anni di sviluppo in Javascript ha trovato la massima espressione in Google Apps Script che mi ha permesso, con estrema facilità e poche righe di codice, di realizzare potenti applicazioni interattive e processi automatizzati integrati con i prodotti della G Suite.

Come contattarmi
scrivi un commento

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

scrivi un commento

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato.I campi contrassegnati da un * sono obbligatori
Puoi utilizzare i seguenti tag nei commenti:
[bold]testo[/bold] se vuoi evidenziare un testo con il grassetto[code]function helloworld() { }[/code] se vuoi pubblicare una porzione di codice[url]https://www.appsscript.it[/url] se devi riferirti ad un indirizzo web