¿Cómo descargar el directorio HTTP con todos los archivos y subdirectorios tal como aparecen en la lista de archivos/carpetas en línea?

Resuelto Omar asked hace 10 años • 8 respuestas

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 wgetdescarga subdirectorios, descarga el index.htmlarchivo 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)?

directorio HTTP en línea

Omar avatar May 03 '14 22:05 Omar
Aceptado

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/

Mingjiang Shi avatar Oct 09 '2014 03:10 Mingjiang Shi

Pude hacer que esto funcionara gracias a esta publicación utilizando VisualWGet . Funciono muy bien para mi. La parte importante parece ser comprobar la -recursivebandera (ver imagen).

También descubrí que la -no-parentbandera es importante; de ​​lo contrario, intentará descargar todo.

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

mateuscb avatar Jun 16 '2014 15:06 mateuscb

puedes usar lftp, la navaja de descarga si tienes archivos más grandes que puedes agregar --use-pget-n=10al comando

lftp -c 'mirror --parallel=100 https://example.com/files/ ;exit'
nwgat avatar May 14 '2020 12:05 nwgat
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.

Natalie Ng avatar Jun 19 '2017 20:06 Natalie Ng