Esta idea de descargar un sitio completo para uso offline es harto conocida y aplicada por los cubanos desde hace años debido a las limitantes de acceso a Internet. Incluso hoy en día sigue usándose para abaratar costos.
Un ejemplo clásico de un sitio con versión offline que es copiado y almacenado a menudo en los discos de los desarrolladores de software es w3schools.com.
Para descargar sitios completos y consumir su contenido estático
conservando las imágenes, los enlaces internos y los estilos
usaremos la herramienta de línea de comandos wget
.
Seguro existen otras herramientas, incluso con interfaz gráfica,
si conoces alguna no dudes en compartirla en los comentarios.
Supongamos que queremos descargar el sitio xamarinhelp.com, el comando a invocar sería este:
wget \
--recursive \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains xamarinhelp.com \
--no-parent \
-l 2 \
-o wget-rec-download.log \
xamarinhelp.com
Expliquemos algunos argumentos:
--recursive
hace que wget
descargue no solo index.html sino
recursivamente todo enlace a partir ahí en el dominio definido.-l
es la profundidad máxima a seguir en la recursividad.
En el ejemplo si una página está como mínimo a más de dos enlaces
del inicio pues no se descargaría. Para la mayoría de los blogs y
sitios de documentación basta con profundidad 2.--restrict-file-names=windows
le dice a wget
que renombre
los archivos descargados para que sean compatibles con los sistemas de
ficheros de windows.-o wget-rec-download.log
le dice que guarde toda la salida de información que wget por defecto imprime por la consola que la envíe en su lugar al fichero wget-rec-download.log
. Si te gusta ver todo el proceso de descarga pues excluye este parámetro.¡Listo, eso es todo! En otro post explicaré como usar este comando en un script junto a otros comandos que le den más funcionalidad de modo que pueda ser ejecutado en algun servicio cloud o PC de algún amigo en el exterior y el script se encargue de descargar el sitio, comprimirlo y subir el comprimido a algún servidor y así te ahorrarías incluso más tiempo e Internet.