Descarga un sitio entero con wget aún cuando hayan restricciones

¿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 😀

¿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


23 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   eliotime3000 dijo

    Interesante tip. No sabía que se podía hacer eso.

  2.   Emmanuel dijo

    Expresamente es lo que me había pasado dos veces, y era ciertamente por ello. Aunque, era por cuestiones de velocidad (casa vs universidad) que quise acceder a contenido de esa forma. 😛
    Gracias por el consejo. Saludos.

  3.   Gerardo dijo

    Genial para los que no tenemos internet. Porcierto buenos tutoriales.

  4.   Quinotto dijo

    Muy interesante el articulo.
    Pregunta : como se puede hacer para sitios https ?
    Donde se requiere autenticar por medio de usuario y contrasena y ademas gran parte del sitio esta escrito en java ?
    Saludos y Gracias

  5.   Gelibasio dijo

    y donde se guardan las descargas?

    1.    Gelibasio dijo

      Me respondo yo mismo: en la carpeta personal. Pero ahora la pregunta es… se le puede indicar de algún modo donde descargar el contenido?

      graciass

      1.    Daniel dijo

        Supongo que primero accedes a la carpeta donde quieres guardarlo y luego corres wget

  6.   cristian dijo

    consulta… y habrá algo como esto para «clonar» una base de datos

  7.   xphnx dijo

    Tengo una curiosidad, recibís dinero por colocar esos enlaces a webs micronichos?

  8.   Ruperto dijo

    Bendito wget … así descargué mucha porno en mis tiempos de puerco xD

  9.   alunado dijo

    buen tip. gracias

  10.   NULL dijo

    Muy bueno, me gusto la parte de burlar las restricciones.

  11.   Franz dijo

    Gracias por esa joya:
    wget –header=»Accept: text/html» –user-agent=»Mozilla/5.0 (X11; Linux i686; rv:31) Gecko/20100101 Firefox/31″ –referer=http://www.google.com -r https://launchpad.net/~linux-libre/+archive/ubuntu/rt-ppa/+files/linux-image-3.6.11-gnu-3-generic_3.6.11-gnu-3.rt25.precise1_i386.deb -k -e robots=off

    wget –header=»Accept: text/html» –user-agent=»Mozilla/5.0 (X11; Linux i686; rv:31) Gecko/20100101 Firefox/31″ –referer=http://www.google.com -r https://launchpad.net/~linux-libre/+archive/ubuntu/rt-ppa/+files/linux-headers-3.6.11-gnu-3_3.6.11-gnu-3.rt25.precise1_all.deb -k -e robots=off

    wget –header=»Accept: text/html» –user-agent=»Mozilla/5.0 (X11; Linux i686; rv:31) Gecko/20100101 Firefox/31″ –referer=http://www.google.com -r https://launchpad.net/~linux-libre/+archive/ubuntu/rt-ppa/+files/linux-headers-3.6.11-gnu-3-generic_3.6.11-gnu-3.rt25.precise1_i386.deb -k -e robots=off

  12.   Palomares dijo

    Muy interesante.

  13.   Oscar Meza dijo

    wget es una de esas herramientas ultrapoderosas, con un poco de programación de terminal puedes hacer tu propio robot al estilo google para comenzar a bajar el contenido de las paginas y almacenarlo en tu propia base de datos y hacer lo qu quieras despues con dicha data.

  14.   Carlos G dijo

    Me parece muy interesante esta herramienta, nunca había puesto atención a sus parámetros, me gustaría saber si se puede descargar contenido de una pagina «X» a la cual se necesita estar loggeado para entrar, y si es que en algún lugar de este sitio «X» existe algún vídeo, también lo descargaría aunque pertenezca a un CDN diferente al sitio «X»?

    Si esto fuese posible como se protege contra un sitio contra una herramienta así?

    Saludos!

  15.   Erick Zanardi dijo

    Buenas NOches:

    Les escribo para una consulta. Descargué con el último comando de este artículo, casi 300MB de información.. archivos .swf, .js, .html, desde la página http://www.netacad.com/es con mi usuario de un pequeño curso que realicé en Maracay, Venezuela.

    Mi pregunta es… Habrá posibilidad de ver las animaciones flash?

    Ingreso a «Configuración Global» y las opciones que muestra ninguna me permite configurar.

    Agradezco alguna respuesta.

    Gracias de antemano!

    1.    ADX dijo

      tengo el mismo detalle, los .swf se descargan a medias, si consigues saltarlo me compartes info. Lo que hice de ultimo intento fue usar un spider para obtener todos los enlaces del netacad pero aun así los .swf no terminan de descargarse como debería

  16.   alejandro.hernandez dijo

    muy bueno !!! gracias.

  17.   Ana dijo

    Hola, gracias por tu tuto. Intento descargarme un blog en el que estoy invitada, con contraseña, para poderlo leer desde casa sin conexión. Uso este programa, y obviamente, tengo la contraseña del blog (wordpress), pero no sé cómo proceder. Podrías indicarme?
    Gracias con antelación y un saludo!

  18.   Fran dijo

    que gran post!!!

  19.   Santiago dijo

    excelente me ha servido bastante

  20.   Fran dijo

    Estoy logueado en una web con videos de vimeo incrustrados y no hay manera que se descarguen.. parece como si vimeo los tuviese protegidos. Alguna idea??