Hay un directorio HTTP en línea al que tengo acceso. He intentado 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 mismos.
¿Hay alguna manera de descargar los subdirectorios y archivos sin límite de profundidad (como si el directorio que quiero descargar es solo una carpeta que quiero copiar en mi computadora)?
-R
gusta-R css
para excluir todos los archivos CSS, o usar Me-A
gusta-A pdf
para descargar solo archivos PDF.When downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
robots.txt
archivo que no permite la descarga de archivos en el directorio, esto no funcionará. En ese caso necesitas agregar-e robots=off
. Ver unix.stackexchange.com/a/252564/10312Pude hacer que esto funcionara gracias a esta publicación utilizando VisualWGet . Funciono muy bien para mi. La parte importante parece ser verificar la
-recursive
bandera (ver imagen).También descubrió que la
-no-parent
bandera es importante, de lo contrario intentará descargar todo.fuente
--no-parent
?De
man wget
'-r' '--recursive' Activa la recuperación recursiva. Ver Descarga recursiva, para más detalles. La profundidad máxima predeterminada es 5.
'-np' '--no-parent' Nunca ascienda al directorio padre al recuperar de forma recursiva. Esta es una opción útil, ya que garantiza que solo se descargarán los archivos debajo de una determinada jerarquía. Ver Límites basados en directorios, para más detalles.
'-nH' '--no-host-directorios' Desactiva la generación de directorios con prefijo de host. Por defecto, invocar Wget con '-r http://fly.srk.fer.hr/ ' creará una estructura de directorios que comenzará con fly.srk.fer.hr/. Esta opción deshabilita tal comportamiento.
'--cut-dirs = number' 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á atascado con pub / xemacs. Aquí es donde '--cut-dirs' es útil; hace que Wget no "vea" el número de componentes del directorio remoto. 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 subdirectorios; por ejemplo, con '-nH --cut-dirs = 1', un subdirectorio beta / se colocará en xemacs / beta, como Uno esperaría.
fuente
wget
es un recurso invaluable y algo que uso yo mismo. Sin embargo, a veces hay caracteres en la dirección que sewget
identifican como errores de sintaxis. Estoy seguro de que hay una solución para eso, pero como esta pregunta no se refería específicamentewget
, pensé que ofrecería una alternativa para aquellas personas que indudablemente tropezarán con esta página en busca de una solución rápida sin necesidad de curva de aprendizaje.Hay algunas extensiones de navegador que pueden hacer esto, pero la mayoría requiere la instalación de gestores de descargas, que no siempre son gratuitos, tienden a ser una molestia y utilizan muchos recursos. Aquí hay uno que no tiene ninguno de estos inconvenientes:
"Download Master" es una extensión para 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/
fuente
puedes usar lftp, la navaja suiza de descarga si tienes archivos más grandes que puedes agregar
--use-pget-n=10
al comandofuente
Puede usar este complemento de Firefox para descargar todos los archivos en el directorio HTTP.
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
fuente
¡No se requiere software ni complemento!
(solo se puede usar si no necesita un departamento recursivo)
Use bookmarklet. Arrastre este enlace a los marcadores, luego edite y pegue este código:
y vaya a la página (desde donde desea descargar archivos), y haga clic en ese marcador.
fuente
wget generalmente funciona de esta manera, pero algunos sitios pueden tener problemas y puede crear demasiados archivos html innecesarios. Para facilitar este trabajo y evitar la creación innecesaria de archivos, estoy compartiendo mi script getwebfolder, que es el primer script de Linux que escribí para mí. Este script descarga todo el contenido de una carpeta web ingresada como parámetro.
Cuando intenta descargar una carpeta web abierta por wget que contiene más de un archivo, wget descarga un archivo llamado index.html. Este archivo contiene una lista de archivos de la carpeta web. Mi script convierte los nombres de archivo escritos en el archivo index.html a direcciones web y los descarga claramente con wget.
Probado en Ubuntu 18.04 y Kali Linux, también puede funcionar en otras distribuciones.
Uso:
extraer el archivo getwebfolder del archivo zip proporcionado a continuación
chmod +x getwebfolder
(solo por primera vez)./getwebfolder webfolder_URL
como
./getwebfolder http://example.com/example_folder/
Enlace de descarga
Detalles en el blog
fuente