Tareas #6064

Descargar offline todo el contenido de la wiki

Added by Daniel Viñar Ulriksen about 3 years ago. Updated over 2 years ago.

Status:En cursoStart date:10/30/2018
Priority:NormalDue date:
Assignee:Cielito - adminsys% Done:

80%

Category:-Spent time:38.50 hours
Target version:-

Description

Graciela Carreño solicitó una copia de toda la información actual de la wiki, en un disco duro.

website_downloader.sh Magnifier - Script de descarga (2.8 KB) Cristhian Ariel Choque, 10/30/2018 06:01 PM


Related issues

Related to Sitio web de la CCI - Tareas #6091: Problemas y restauración de wiki.cci.edu.uy desde los res... Resuelta 11/30/2018

History

#1 Updated by Daniel Viñar Ulriksen about 3 years ago

  • Status changed from Nueva to En curso
  • % Done changed from 0 to 10

De paso: ¿se ha hecho algo de estas tareas: #5799 #4665?

Hice una copia de los datos en el servidor (scripts, base de datos y archivos adjuntos). Pero estos datos no son muy explotables, requerirían una re-instalación del tikiwiki, y no darían ni más ni menos que una réplica de lo que vemos en la web, autenticación incluida.

Otra idea: descargar la wiki con wget. Problemas por resolver:
  • en modo recursivo, wget respeta las directivas del robot.txt
  • hay una autenticación por formulario, hay que generar cookies de autenticación y retomarlos para que el wget acceda a las partes reservadas (en particular adjuntos).

#2 Updated by Daniel Viñar Ulriksen about 3 years ago

  • % Done changed from 10 to 20

Según esta revista, si no hubiera autenticación y robots.txt, habría que ejecutar:

wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains wiki.cci.edu.uy \
     --no-parent \
         https://wiki.cci.edu.uy

Lo primero que nos salta es que el certificado no es válido. Va de nuevo ignorando la validación de cert:
wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --no-check-certificate \
     --restrict-file-names=windows \
     --domains wiki.cci.edu.uy \
     --no-parent \
         https://wiki.cci.edu.uy

Aún así, salta la exclusión por el robots.txt. Nada documentada, la opción no obstante existe para que wget ignore las directivas de ese archivo y fuerce el recorrido del contenido del sitio:
wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --no-check-certificate \
     --restrict-file-names=windows \
     -e robots=off \
     --domains wiki.cci.edu.uy \
     --no-parent \
         https://wiki.cci.edu.uy

Ahí sí descarga todo, pero nos falta la autenticación por formulario en la tikiwiki...

#3 Updated by Daniel Viñar Ulriksen about 3 years ago

  • % Done changed from 20 to 30

Probemos con esta sugerencia :

wget --save-cookies cookies.txt \
     --keep-session-cookies \
     --post-data 'user=usuarix&pass=contrasenha' \
      --no-check-certificate \
     --delete-after \
         https://wiki.cci.edu.uy/tiki-login_scr.php

Y luego retomamos nuestra petición, agregándole las cookies oportunas:
wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --no-check-certificate \
     --restrict-file-names=windows \
     -e robots=off \
     --load-cookies cookies.txt \
     --domains wiki.cci.edu.uy \
     --no-parent \
         https://wiki.cci.edu.uy

¡Y ahí arranca bien!

#4 Updated by Daniel Viñar Ulriksen about 3 years ago

  • Assignee changed from Daniel Viñar Ulriksen to Cielito - adminsys

No me funca... en el resultado html que devuelve el tiki-login.php, siempre veo un "Conéctate" y no un "Desconéctate". Cedo tarea.

#5 Updated by Cristhian Ariel Choque about 3 years ago

Encontre un script bash (me encuentro en la oficina y hasta el momento funciona bien, pero, lo parare para hacer correr en otro lado por que creo que el total del sitio pesa como 6 GB y apenas va en 150 mb) que realiza la tarea descargar un sitio web completo mediante wget, como primera tarea realiza la descarga de la cookie del sitio, el enlace al sitio de referencia es :

https://www.securitynull.net/descargar-una-web-completa-con-login-wget/

El script se encuentra adjunto.

#6 Updated by Cristhian Ariel Choque about 3 years ago

Al parecer el script no anda muy bien por que parece que las el archivo de cookies descargados es incompleto.

Otra prueba que realice, es la de descargar la cookie del sitio con este plugin de firefox para luego probar la descarga del sitio agarrando esa cookie con los siguientes pasos :

  • Mediante firefox, realizo la autenticación en el sitio https://wiki.cci.edu.uy/ para luego obtener el archivo cookies.txt que nos probee el plugin mencionado, y guardarlo en un directorio de mi laptop.
  • Por consola lanzo el comando para descargar un archivo que requiere de autenticación y lo hace bien.
    wget https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4175 --load-cookies cookies.txt --no-check-certificate 
    
    --2018-10-31 23:33:00--  https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4175
    
    Resolviendo wiki.cci.edu.uy (wiki.cci.edu.uy)... 164.73.68.5, 2001:1328:2c:a::5
    Conectando con wiki.cci.edu.uy (wiki.cci.edu.uy)[164.73.68.5]:443... conectado.
    AVISO: El certificado de “wiki.cci.edu.uy” no es confiable.
    AVISO: El certificado de “wiki.cci.edu.uy” no tiene un emisor conocido.
    El propietario del certificado no se ajusta al nombre de equipo “wiki.cci.edu.uy”
    Petición HTTP enviada, esperando respuesta... 200 OK
    Longitud: 51225 (50K) [application/vnd.oasis.opendocument.text]
    Grabando a: “tiki-download_file.php?fileId=4175”
    
    tiki-download_file.php?fileId=4175    100%[=======================================================================>]  50,02K  38,4KB/s    in 1,3s    
    
    2018-10-31 23:33:06 (38,4 KB/s) - “tiki-download_file.php?fileId=4175” guardado [51225/51225]
    

El problema esta cuando se quiere descargar el sitio recursivamente (parece que en las primeras descargas las cookies cargadas mediante el archivo pierden su valor).

wget \
>      --recursive \
>      --load-cookies cookies.txt \
>      --no-clobber \
>      --page-requisites \
>      --html-extension \
>      --no-check-certificate \
>      --convert-links \
>      --restrict-file-names=windows \
>      -e robots=off \
>         https://wiki.cci.edu.uy
.
.
.
--2018-11-01 00:08:53--  https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4049
Conectando con wiki.cci.edu.uy (wiki.cci.edu.uy)[164.73.68.5]:443... conectado.
AVISO: El certificado de “wiki.cci.edu.uy” no es confiable.
AVISO: El certificado de “wiki.cci.edu.uy” no tiene un emisor conocido.
El propietario del certificado no se ajusta al nombre de equipo “wiki.cci.edu.uy”
Petición HTTP enviada, esperando respuesta... 401 Permiso denegado

La autentificación usuario/contraseña falló.
--2018-11-01 00:08:54--  https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4051
Conectando con wiki.cci.edu.uy (wiki.cci.edu.uy)[164.73.68.5]:443... conectado.
AVISO: El certificado de “wiki.cci.edu.uy” no es confiable.
AVISO: El certificado de “wiki.cci.edu.uy” no tiene un emisor conocido.
El propietario del certificado no se ajusta al nombre de equipo “wiki.cci.edu.uy”
Petición HTTP enviada, esperando respuesta... 401 Permiso denegado

La autentificación usuario/contraseña falló.
--2018-11-01 00:08:54--  https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4053
Conectando con wiki.cci.edu.uy (wiki.cci.edu.uy)[164.73.68.5]:443... conectado.
AVISO: El certificado de “wiki.cci.edu.uy” no es confiable.
AVISO: El certificado de “wiki.cci.edu.uy” no tiene un emisor conocido.
El propietario del certificado no se ajusta al nombre de equipo “wiki.cci.edu.uy”
Petición HTTP enviada, esperando respuesta... 401 Permiso denegado

La autentificación usuario/contraseña falló.
--2018-11-01 00:08:55--  https://wiki.cci.edu.uy/tiki-download_file.php?fileId=4417
Conectando con wiki.cci.edu.uy (wiki.cci.edu.uy)[164.73.68.5]:443... conectado.
AVISO: El certificado de “wiki.cci.edu.uy” no es confiable.
AVISO: El certificado de “wiki.cci.edu.uy” no tiene un emisor conocido.
El propietario del certificado no se ajusta al nombre de equipo “wiki.cci.edu.uy”
Petición HTTP enviada, esperando respuesta... 401 Permiso denegado

La autentificación usuario/contraseña falló.
.
.
.

#7 Updated by Andrés Pías about 3 years ago

Tenemos que ir probando algunas de estas herramientas. Creo que van a servir para lo que se pide.

#8 Updated by Andrés Pías about 3 years ago

  • Related to Tareas #6091: Problemas y restauración de wiki.cci.edu.uy desde los respaldos added

#9 Updated by Cristhian Ariel Choque about 3 years ago

  • % Done changed from 40 to 80

Buscando otras herramientas y opciones para la descarga de la wiki, probé con wget2 y descargo el sitio completo (pero con algunos detalles), lo que hice fue instalar esté plugin en mi navegador firefox, inicie sesión en la wiki y exporté las cookies del sitio mediante el plugin instalado a un archivo llamado cookies.txt . Para instalar el paquete wget2 en Debian debes tener habilitado el repositorio de testing.

# testing para wget2
deb http://repos.interior.udelar.edu.uy/debian/ testing non-free contrib main

Támbien que el paquete gzip.se encuentre instalado en el sistema.

En la terminal ejecuté el siguiente comando (tomando en cuenta que el archivo txt que guarda las cookies se encuentra en el mismo directorio donde ejecuté el comando).

wget2 https://wiki.cci.edu.uy/ --mirror --recursive --load-cookies cookies.txt --no-check-certificate -e robots=off --convert-links --page-requisites

Descargo correctamente todos los archivos pero con algunos detalles de navegación, por ejemplo:

Navegando en el browser por el archivo index.html , en una de las opciones me lleva al siguiente link, y que el cual no lo muestra y es un problema por el caracter &

file:///home/cchoque/wiki.cci.edu.uy/Mesa+Ejecutiva+N%C2%BA+2+%2816.03.2015%29&structure=Cogobierno

En disco no existe la ruta anterior lo correcto sería

file:///home/cchoque/wiki.cci.edu.uy/Mesa+Ejecutiva+N%C2%BA+2+(16.03.2015)&structure=Cogobierno

Otro de los casos es cuando se llega navegando a un archivo

file:///home/cchoque/wiki.cci.edu.uy/tiki-download_file.php?fileId=7377

En el disco existe la anterior ruta, pero el navegador no puede interpretar el caracter "?", para que se muestre en el navegador podriá ser :

file:///home/cchoque/wiki.cci.edu.uy/tiki-download_file.php%3FfileId=7377

Estoy lanzando otra prueba con parámetros adicionales en el wget2.

#10 Updated by Daniel Viñar Ulriksen over 2 years ago

Volvemos a la solución de wget que trabajábamos hasta la nota 6: #6064#note-6.

Creo que no pensamos en un punto: que el spider que descarga no solicite el mismo una desconexión del sitio. Para lo cual agregamos la exclusión del enlace de logout: --reject tiki-logout.php

wget  --recursive \
      --no-clobber \
      --page-requisites \
      --html-extension \
      --convert-links \
      --no-check-certificate \
      --restrict-file-names=windows \
      -e robots=off \
      --load-cookies cookies.txt \
      --domains wiki.cci.edu.uy \
      --no-parent \
      --reject tiki-logout.php \
         https://wiki.cci.edu.uy

Also available in: Atom PDF