TOP

Descargar páginas web completas por comando en linux con wget

A veces puede ser necesario o resultar más cómodo descargar una página web completamente por el motivo que fuere, incluso para aprender a ver el contenido y estructura de algunas páginas web. También es útil para navegar sobre la misma en futuras situaciones sin acceso a internet: para llevar la web a una asamblea, reunión, charla...

Para linux hay un simple comando con el que podemos hacer esto: "wget"
La forma simple de usarlo para descargar solo del dominio actual es la siguiente:
# wget -r "páginaweb"

Ejemplo:
# wget -r www.paginaparadescargar.com

Con este comando te descargarás desde imágenes, javascript (js), hojas de estilo (css)....
Pero no lo descargarás todo ni en todas las ocasiones realiza al completo lo que necesitamos. Para adaptarte a la situación  lee más abajo.

Vídeo de Ejemplo:


También hay otra forma más completa que nos creará aparte un log con todo lo que ha realizado en un archivo de texto y descargará toda la web para que sea accesible desde un dispositivo sin conexión a internet.

Esto es de la siguiente forma reemplazando el texto entre comillas por nuestra ruta donde guardaremos y la página web fuente:

wget -P "carpeta_destino" -E -H -k -K -p -o log "http://www.paginaweb.es/index.html"


A continuación os explicaré como funcionan las opciones más comunes de wget:

-P   --> Directorio donde se descargará toda la página
-E   --> Todos los ficheros se guardarán con la extensión html (a veces hay algunos que se presentan asi: xhtml+xml)
-H   --> Así wget se puede descargar contenidos de dominios distintos de indicado por la url
-K   --> Mantiene un backup del fichero original en el caso que se haya modificado para ser accesible en modo offline
-p   --> Descarga todos los ficheros necesarios para visualizar la web
-o   --> Fichero donde se guardarán todos los mensajes de lo que ha ocurrido (LOG)
-e   --> No hace caso del archivo robots.txt (Así se descarga todo lo accesible)
--random-wait   --> Tiempo entre descargas aleatorio, por si nos limita el servidor
-U   --> Hacer creer que somos un navegador web (así evitamos problemas)

OTROS EJEMPLOS:
Descargar todo completo con LOG e ignorando robots.txt
# wget -e robots=off -E -H -k -K -p -o log "www.pagina.es"

Descargar todo y además hacer creer que somos un navegador y tiempo de espera entre descarga de archivos aleatorio (esto en algunos servidores es necesarios)
# wget --random-wait -e robots=off -E -H -U mozilla -k -K -p -o log "www.pagina.es"

Descarga simple pero muy eficaz:
# wget -r -p www.paginaparadescargar.com

El comando que más me ha funcionado para descargar toda una web y las dependientes de esta es el siguiente:

# wget --random-wait -e robots=off -E -H -U mozilla -k -K -p -r -l 2 -o log "www.paginaweb.es"