¿Cómo descargar el directorio HTTP con todos los archivos y subdirectorios tal como aparecen en la lista de archivos/carpetas en línea?
Hay un directorio HTTP en línea al que tengo acceso. Intenté descargar todos los subdirectorios y archivos a través de wget
. Pero el problema es que cuando wget
descarga subdirectorios, descarga el index.html
archivo que contiene la lista de archivos en ese directorio sin descargar los archivos en sí.
¿Hay alguna manera de descargar los subdirectorios y archivos sin límite de profundidad (como si el directorio que quiero descargar fuera solo una carpeta que quiero copiar a mi computadora)?
Solución:
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
Explicación:
- Descargará todos los archivos y subcarpetas en el directorio ddd.
-r
: recursivamente-np
: no ir a directorios superiores, como ccc/…-nH
: no guardar archivos en la carpeta del nombre de host--cut-dirs=3
: pero guárdelo en ddd omitiendo las primeras 3 carpetas aaa , bbb , ccc-R index.html
: excluyendo archivos index.html
Referencia: http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/
Pude hacer que esto funcionara gracias a esta publicación utilizando VisualWGet . Funciono muy bien para mi. La parte importante parece ser comprobar la -recursive
bandera (ver imagen).
También descubrí que la -no-parent
bandera es importante; de lo contrario, intentará descargar todo.
puedes usar lftp, la navaja de descarga si tienes archivos más grandes que puedes agregar --use-pget-n=10
al comando
lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/
Deman wget
'-r' '--recursive' Activa la recuperación recursiva. Consulte Descarga recursiva para obtener más detalles. La profundidad máxima predeterminada es 5.
'-np' '--no-parent' Nunca ascienda al directorio principal cuando realice una recuperación recursiva. Esta es una opción útil, ya que garantiza que sólo se descargarán los archivos que se encuentren por debajo de una determinada jerarquía. Consulte Límites basados en directorio para obtener más detalles.
'-nH' '--no-host-directories' Deshabilita la generación de directorios con prefijo de host. De forma predeterminada, invocar Wget con '-r http://fly.srk.fer.hr/ ' creará una estructura de directorios que comienza con fly.srk.fer.hr/. Esta opción desactiva dicho comportamiento.
'--cut-dirs=número' Ignora los componentes del directorio de números. Esto es útil para obtener un control detallado sobre el directorio donde se guardará la recuperación recursiva.
Tomemos, por ejemplo, el directorio en ' ftp://ftp.xemacs.org/pub/xemacs/ '. Si lo recupera con '-r', se guardará localmente en ftp.xemacs.org/pub/xemacs/. Si bien la opción '-nH' puede eliminar la parte ftp.xemacs.org/, todavía estás atascado con pub/xemacs. Aquí es donde '--cut-dirs' resulta útil; hace que Wget no “vea” el número de componentes del directorio remoto. A continuación se muestran varios ejemplos de cómo funciona la opción '--cut-dirs'.
Sin opciones -> ftp.xemacs.org/pub/xemacs/ -nH -> pub/xemacs/ -nH --cut-dirs=1 -> xemacs/ -nH --cut-dirs=2 -> .
--cut-dirs=1 -> ftp.xemacs.org/xemacs/ ... Si solo desea deshacerse de la estructura del directorio, esta opción es similar a una combinación de '-nd' y '-P'. Sin embargo, a diferencia de '-nd', '--cut-dirs' no pierde con los subdirectorios; por ejemplo, con '-nH --cut-dirs=1', se colocará un subdirectorio beta/ en xemacs/beta, como uno esperaría.