miércoles, 22 de octubre de 2014

Descarga sitio web completo con wget aún si hay restricciones

Empecemos por el principio, ¿qué es wget?

Nada mejor que Wikipedia para explicar en que consiste esta herramienta:

GNU Wget es una herramienta de software libre que permite la descarga de contenidos desde servidores web de una forma simple. Su nombre deriva de World Wide Web (w), y de «obtener» (en inglés get), esto quiere decir: obtener desde la WWW.

Actualmente soporta descargas mediante los protocolos HTTP, HTTPS y FTP.

Entre las características más destacadas que ofrece wget está la posibilidad de fácil descarga de mirrors (espejos) complejos de forma recursiva, conversión de enlaces para la visualización de contenidos HTML localmente, soporte para proxies…

De wget hemos hablado ya bastante aquí en DesdeLinux. De hecho ya habíamos visto como descargar un sitio web completo con wget, el problema es que hoy en día los administradores no permiten siempre que cualquiera descargue todo su sitio web así sin más, no es algo que guste en realidad… y, obviamente lo entiendo. El sitio está ahí en internet para consultarlo, el lector accede a contenido de su interés y el administrador del sitio se ve beneficiado bien económicamente (por publicidad), como en visitas, etc. Si el lector descarga el sitio hacia su ordenador, no tendrá la necesidad de acceder al online para consultar algún post pasado.

Para descargar un sitio con wget es tan simple como:

wget -r -k http://www.sitio.com

  • -r : Esto indica que se descargará el sitio web completo.
  • -k : Esto indica que se convertirán los links del sitio descargado para poder verlos en ordenadores sin internet.

Ahora, el asunto se complica cuando el administrador del sitio nos la pone difícil…

¿qué restricciones pudieran existir?

La más común que podríamos encontrarnos es que solo se permite el acceso al sitio si tienes un UserAgent reconocido. O sea, el sitio reconocerá que el UserAgent que tantas páginas está descargando no es de los “normales” y por lo tanto cerrará el acceso.

También mediante el archivo robots.txt se puede especificar que wget (al igual que un montón más de aplicaciones similares) no podrá descargar según desee el cliente, pues … bueno, el administrador del sitio así lo quiere y punto :D

¿cómo burlar estas restricciones?

Para el primer caso le estableceremos un UserAgent a wget, esto podremos hacerlo con la opción –user-agent, aquí les muestro cómo:

wget --user-agent="Mozilla/5.0 (X11; Linux amd64; rv:32.0b4) Gecko/20140804164216 ArchLinux KDE Firefox/32.0b4" -r http://www.sitio.com -k

Ahora, para burlar al robots.txt basta con hacer un exclude a ese archivo, o sea, que wget descargue el sitio y le importe nada lo que diga robots.txt :

wget --user-agent="Mozilla/5.0 (X11; Linux amd64; rv:32.0b4) Gecko/20140804164216 ArchLinux KDE Firefox/32.0b4" -r http://www.sitio.com -k -e robots=off

Ahora… hay otras opciones o parámetros que podemos usar para engañar aún más al sitio, por ejemplo, indicarle que entramos al sitio desde Google, aquí les dejo ya la línea final con todo:

wget --header="Accept: text/html" --user-agent="Mozilla/5.0 (X11; Linux amd64; rv:32.0b4) Gecko/20140804164216 ArchLinux KDE Firefox/32.0b4" --referer=http://www.google.com -r http://www.sitio.com -e robots=off -k
No es obligatorio que el sitio contenga http://www al inicio, puede ser uno directamente http:// como por ejemplo este de Geometry Dash

¿está bien hacer esto?

Eso depende… siempre hay que verlo desde los dos puntos de vista, desde el del administrador del sitio pero también desde el lector.

Por una parte a mí como administrador no me gustaría que se estén llevando una copia en HTML de mi sitio así sin más, está aquí online no por gusto, para el disfrute de todos… nuestra meta es tenerles disponible contenido interesante, que puedan aprender.

Pero, por otra parte…  hay usuarios que no tienen internet en casa, que les gustaría contar con toda la sección de Tutoriales que hemos puesto aquí… me pongo en el lugar de ellos (de hecho lo estoy, pues en casa no tengo internet) y no es agradable estar en el ordenador, tener un problema o querer hacer algo y no poder pues no se tiene acceso a la red de redes.

Si está bien o mal es cosa de cada administrador, de la realidad de cada uno… lo que más me preocuparía a mí sería el consumo de recursos que el wget provoque en el servidor, pero con un buen sistema de caché debería bastar para que el server no sufra.

internet

Conclusiones

Les pido que ahora no se pongan a estar todos descargando DesdeLinux JAJAJA!! Por ejemplo, mi novia me pidió que descargara unos trucos de Geometry Dash (algo así como Geometry Dash Cheats), no descargaré el sitio web completo, sino que simplemente abriré la página deseada y la guardaré en PDF o en HTML o algo así, eso es lo que les recomendaría a ustedes.

Si tienes algún tutorial de DesdeLinux que deseas guardar, guárdalo en tus marcadores, como HTML o PDF … pero, por uno o dos tutoriales no hace falta generar un tráfico y consumo excesivo en el servidor ;)

Bueno nada, espero les sea útil … Saludos

 

The post Descarga un sitio entero con wget aún cuando hayan restricciones appeared first on Desde Linux.

No hay comentarios:

Publicar un comentario