ver varios todos subdirectorios otro mover los listar directorios directorio crear copiar contenido consola comandos carpeta archivos archivo html http get download wget

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



mover varios archivos en linux (5)

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 archivo index.html que contiene la lista de archivos en ese directorio sin descargar los archivos ellos mismos. ¿Hay alguna manera de descargar los subdirectorios y archivos sin límite de profundidad (como si el directorio que deseo descargar fuera solo una carpeta que quiero copiar a mi computadora)?


¡No se requieren complementos!

Use bookmarklet. Arrastre este enlace en los marcadores y vaya a la página (desde donde desea descargar los archivos), luego edite y pegue este código:

(function(){ var arr=[], l=document.links; var ext=prompt("select extension for download (all links containing that, will be downloaded.", ".mp3"); for(var i=0; i<l.length; i++) { if(l[i].href.indexOf(ext) !== false){ l[i].setAttribute("download","download"); l[i].click(); } } })();


Pude hacer que esto funcionara gracias a esta publicación que utiliza VisualWGet . Funciono muy bien para mi. La parte importante parece ser verificar el indicador -recursive (ver imagen).

También se encontró que la bandera de -no-parent es importante, de lo contrario, intentará descargar todo.


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:
  • recursivamente (-r),
  • no ir a los directorios superiores, como ccc / ... (-np),
  • no guardar archivos en la carpeta de nombre de host (-nH),
  • pero ddd omitiendo las primeras 3 carpetas aaa, bbb, ccc (--cut-dirs = 3)
  • excluyendo archivos index.html (-R index.html)

Referencia: http://bmwieczorek.wordpress.com/2008/10/01/wget-recursively-download-all-files-from-certain-directory-listed-by-apache/


wget es un recurso invaluable y algo que uso yo mismo. Sin embargo, a veces hay caracteres en la dirección que wget identifica como errores de sintaxis. Estoy seguro de que hay una solución para eso, pero como esta pregunta no me preguntó específicamente sobre wget , pensé que ofrecería una alternativa para aquellas personas que indudablemente tropezarán con esta página buscando una solución rápida sin necesidad de una curva de aprendizaje.

Hay algunas extensiones de navegador que pueden hacer esto, pero la mayoría requiere la instalación de administradores de descargas, que no siempre son gratuitos, tienden a ser una monstruosidad y usan muchos recursos. Aquí hay uno que no tiene ninguno de estos inconvenientes:

"Download Master" es una extensión de Google Chrome que funciona muy bien para descargar desde directorios. Puede elegir filtrar qué tipos de archivos descargar o descargar todo el directorio.

https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce

Para obtener una lista actualizada de características y otra información, visite la página del proyecto en el blog del desarrollador:

http://monadownloadmaster.blogspot.com/


wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

Del man wget

''-r'' ''--recursive'' Active la recuperación recursiva. Ver descarga recursiva, para más detalles. La profundidad máxima predeterminada es 5.

''-np'' ''--no-parent'' No ascienda nunca al directorio padre al recuperar recursivamente. Esta es una opción útil, ya que garantiza que solo se descargarán los archivos debajo de cierta jerarquía. Vea Límites basados ​​en el directorio, para más detalles.

''-nH'' ''--no-host-directories'' Desactiva la generación de directorios con el prefijo del host. Por defecto, al invocar Wget con ''-r http://fly.srk.fer.hr/ '' se creará una estructura de directorios que comenzará con fly.srk.fer.hr/. Esta opción deshabilita tal comportamiento.

''--cut-dirs = number'' Ignorar los componentes del directorio de números. Esto es útil para obtener un control preciso sobre el directorio donde se guardará la recuperación recursiva.

Tome, por ejemplo, el directorio en '' ftp://ftp.xemacs.org/pub/xemacs/ ''. Si lo recuperas con ''-r'', se guardará localmente en ftp.xemacs.org/pub/xemacs/. Si bien la opción ''-nH'' puede eliminar la parte de ftp.xemacs.org/, aún está atascado con pub / xemacs. Aquí es donde ''--cut-dirs'' es útil; hace que Wget no "vea" los componentes del directorio remoto de números. Aquí hay 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 quiere 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'', un subdirectorio beta / se colocará en xemacs / beta, como uno esperaría