Il existe un répertoire HTTP en ligne auquel j'ai accès. J'ai essayé de télécharger tous les sous-répertoires et fichiers via wget
. Mais, le problème est que lors du wget
téléchargement de sous-répertoires, il télécharge le index.html
fichier qui contient la liste des fichiers dans ce répertoire sans télécharger les fichiers eux-mêmes.
Existe-t-il un moyen de télécharger les sous-répertoires et les fichiers sans limite de profondeur (comme si le répertoire que je souhaite télécharger est juste un dossier que je souhaite copier sur mon ordinateur).
-R
comme-R css
exclure tous les fichiers CSS, ou utiliser-A
comme-A pdf
des fichiers uniquement télécharger 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
fichier interdisant le téléchargement de fichiers dans le répertoire, cela ne fonctionnera pas. Dans ce cas, vous devez ajouter-e robots=off
. Voir unix.stackexchange.com/a/252564/10312J'ai pu faire fonctionner cela grâce à cet article utilisant VisualWGet . Cela a très bien fonctionné pour moi. L'important semble être de vérifier le
-recursive
drapeau (voir image).On a également constaté que le
-no-parent
drapeau est important, sinon il essaiera de tout télécharger.la source
--no-parent
?De
man wget
'-r' '--recursive' Active la récupération récursive. Voir Téléchargement récursif, pour plus de détails. La profondeur maximale par défaut est de 5.
'-np' '--no-parent' Ne monte jamais dans le répertoire parent lors de la récupération récursive. C'est une option utile, car elle garantit que seuls les fichiers situés sous une certaine hiérarchie seront téléchargés. Voir Limites basées sur l'annuaire, pour plus de détails.
'-nH' '--no-host-directory' Désactive la génération de répertoires avec préfixe d'hôte. Par défaut, appeler Wget avec '-r http://fly.srk.fer.hr/ ' créera une structure de répertoires commençant par fly.srk.fer.hr/. Cette option désactive ce comportement.
'--cut-dirs = number' Ignore les composants du répertoire numérique. Ceci est utile pour obtenir un contrôle fin sur le répertoire où la récupération récursive sera enregistrée.
Prenons, par exemple, le répertoire « ftp://ftp.xemacs.org/pub/xemacs/ ». Si vous le récupérez avec «-r», il sera enregistré localement sous ftp.xemacs.org/pub/xemacs/. Bien que l'option '-nH' puisse supprimer la partie ftp.xemacs.org/, vous êtes toujours bloqué avec pub / xemacs. C'est là que «--cut-dirs» est utile; cela empêche Wget de «voir» les composants du répertoire distant. Voici plusieurs exemples du fonctionnement de l'option '--cut-dirs'.
Aucune option -> 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 vous voulez simplement vous débarrasser de la structure des répertoires, cette option est similaire à une combinaison de '-nd' et '-P'. Cependant, contrairement à «-nd», «--cut-dirs» ne perd pas avec les sous-répertoires - par exemple, avec «-nH --cut-dirs = 1», un sous-répertoire beta / sera placé dans xemacs / beta, comme on pourrait s'y attendre.
la source
wget
est une ressource inestimable et quelque chose que j'utilise moi-même. Cependant, parfois, il y a des caractères dans l'adresse quiwget
s'identifient comme des erreurs de syntaxe. Je suis sûr qu'il y a une solution à cela, mais comme cette question ne posait pas spécifiquement sur,wget
j'ai pensé que je proposerais une alternative aux personnes qui tomberont sans aucun doute sur cette page à la recherche d'une solution rapide sans courbe d'apprentissage requise.Il existe quelques extensions de navigateur qui peuvent le faire, mais la plupart nécessitent l'installation de gestionnaires de téléchargement, qui ne sont pas toujours gratuits, ont tendance à être une horreur et utilisent beaucoup de ressources. Voici celui qui n'a aucun de ces inconvénients:
"Download Master" est une extension pour Google Chrome qui fonctionne très bien pour le téléchargement à partir de répertoires. Vous pouvez choisir de filtrer les types de fichiers à télécharger ou de télécharger l'intégralité du répertoire.
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
Pour une liste des fonctionnalités à jour et d'autres informations, visitez la page du projet sur le blog du développeur:
http://monadownloadmaster.blogspot.com/
la source
vous pouvez utiliser lftp, le couteau de l'armée du téléchargement si vous avez des fichiers plus volumineux que vous pouvez ajouter
--use-pget-n=10
à la commandela source
Vous pouvez utiliser cet addon Firefox pour télécharger tous les fichiers du répertoire HTTP.
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
la source
Aucun logiciel ou plug-in requis!
(utilisable uniquement si vous n'avez pas besoin de profondeur récursive)
Utilisez bookmarklet. Faites glisser ce lien dans les favoris, puis modifiez et collez ce code:
et allez sur la page (d'où vous voulez télécharger les fichiers), et cliquez sur ce bookmarklet.
la source
wget fonctionne généralement de cette façon, mais certains sites peuvent avoir des problèmes et créer trop de fichiers html inutiles. Afin de faciliter ce travail et d'éviter la création de fichiers inutiles, je partage mon script getwebfolder, qui est le premier script Linux que j'ai écrit pour moi-même. Ce script télécharge tout le contenu d'un dossier Web saisi en paramètre.
Lorsque vous essayez de télécharger un dossier Web ouvert par wget qui contient plusieurs fichiers, wget télécharge un fichier nommé index.html. Ce fichier contient une liste de fichiers du dossier Web. Mon script convertit les noms de fichiers écrits dans le fichier index.html en adresses Web et les télécharge clairement avec wget.
Testé sur Ubuntu 18.04 et Kali Linux, il peut également fonctionner sur d'autres distributions.
Utilisation:
extraire le fichier getwebfolder du fichier zip fourni ci-dessous
chmod +x getwebfolder
(seulement pour la première fois)./getwebfolder webfolder_URL
tel que
./getwebfolder http://example.com/example_folder/
Lien de téléchargement
Détails sur le blog
la source