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

Grazie al servizio esterno site-shot.com

Creare uno screenshot di una pagina web con Google Apps Script

In Google Apps Script non esistono metodi nativi per poter creare direttamente uno screenshot di una determinata pagina web. È possibile tuttavia avvalersi di servizi esterni e delle loro API tramite UrlFetchApp.fetch(url), in questo modo si accede alla risorsa web tramite il suo url e successivamente  si analizza e si elabora il contenuto recuperato.

Sono disponibili diversi servizi web che generano screenshot a partire da un URL, ne ho provati alcuni e tra questi ho selezionato site-shot. Questo tool online gratuito, che invito a visitare dalla la semplicità di utilizzo e le possibilità di personalizzazione delle impostazioni quali larghezza, altezza, zoom, formato, schermo intero, ..., permette con una sola chiamata di ottenere l'immagine della pagina web interrogata in ottima risoluzione.

Con Google Apps Script ed il metodo sopra indicato, faremo in modo (con meno di 10 righe di codice) di interrogare l'url di nostro interesse e salvare lo screenshot risultante su Google Drive.
Lo script è il seguente:

function generaScreenshot() {
  var web_page = "http://www.michelepisani.it";
  var url = "https://www.site-shot.com/screenshot/?width=2048&height=2732&zoom=200&scaled_width=2048&full_size=&format=PNG&user_agent=ipad&rnd=398000510591046&url=" + web_page
  var res = UrlFetchApp.fetch(url).getContentText();
  var obj = JSON.parse(res);
  var encoded_image = obj.image.split(",")[1];
  var blob = Utilities.newBlob(Utilities.base64Decode(encoded_image, Utilities.Charset.UTF_8), "image/png", "screenshot.png");
  DriveApp.createFile(blob);
}

Basterà sostituire il valore di web_page con quello della pagina desiderata ed una volta avviata la funzione ritroveremo il risultato nella root di Google Drive.

I parametri in querystring possono essere modificati al fine di ottenere dimensioni e risoluzione personalizzate (tra questi può essere utile gestire con un valore random il parametro rnd al fine di svuotare la cache così come full_size per ottenere l'immagine dell'intera pagina. Per una panoramica sui parametri rimando al sito ufficiale di site-shot).

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