Tips and tricks - siti web navigabili offline

Pubblicato il 28/10/2016 in Technology, Tips and Tricks • 2 min read

Alcune volte si ha l'esigenza di dover navigare un sito completamente offline. Per poter effettuare un download completo di un sito remoto è sufficiente utilizzare wget, un potente e versatile tool da linea di comando. Vediamo come fare!

Scenario

La prima volta mi capitò nell'ormai lontano 2007, quando partecipai ad un evento dove non era disponibile una connessione ad internet.

Mi è capitato di nuovo proprio in questi giorni, quando mi son ritrovato nella stessa situazione di mancanza di connessione, quindi ho deciso che forse sarebbe stato meglio annotare il comando con le sue opzioni, in modo da poterlo ripescare velocemente.

Soluzione

Per questa esigenza ci viene in aiuto un potente e versatile tool da linea di comando, disponibile in praticamente tutte le distribuzioni, che è wget.

Attraverso le sue opzioni possiamo scaricare totalmente un sito web in locale, creando una copia esatta nei contenuti e nella formattazione del sito web remoto.

wget --mirror --convert-links --adjust-extension --page-requisites \ 
--no-parent --exclude-directories /eventi,/wp-admin  \
http://miosito.tld

Nell'esempio riportato, ho escluso i path /eventi e /wp-admin dalla url di riferimento in modo da non effettuare il download del contenuto di quelle directory.

Vediamo le opzioni utilizzate a cosa servono:

  • --mirror: abilita le funzionalità di mirroring, opzione indispensabile per scaricare completamente un sito web remoto. Vengono abilitate, inoltre, funzioni come la ricorsione (a profondità infinita, in modo da entrare in tutte le sub-directory presenti) e il check sul timestamp dei file
  • --convert-links: modifica le URL presenti nei file HTML in modo che puntino correttamente ai file scaricati piuttosto che al sito remoto
  • --adjust-extension: corregge l'estensione del file scaricato aggiungendo .html nel caso non ci fosse
  • --page-requisites: effettua il download di tutti i componenti remoti necessari a visualizzare correttamente i file HTML scaricati
  • --no-parent: con la ricorsione abilitata (con --mirror) esegue la scansione dell'albero delle directory esclusivamente a partire dalla URL indicata
  • --exclude-directories: le directory indicate (separate da virgola) vengono escluse dal download

Si consiglia, come al solito, di consultare la pagina di manuale di wget in modo da poter apportare le modifiche desiderate.