Comment télécharger le répertoire HTTP avec tous les fichiers et sous-répertoires tels qu'ils apparaissent sur la liste des fichiers/dossiers en ligne?

Il y a 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 lorsque wget télécharge des sous-répertoires, il télécharge l'index.fichier html qui contient la liste des fichiers dans ce répertoire sans télécharger les fichiers eux-mêmes. Est-il un moyen de télécharger les sous-répertoires et des fichiers sans limite de profondeur (comme si le répertoire que je veux télécharger est juste un dossier qui je veux copier mes ordinateur).

répertoire HTTP en ligne

114
demandé sur Omar 2014-05-03 19:54:42

5 réponses

Solution:

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

Explication:

  • , Il va télécharger tous les fichiers et sous-dossiers dans ddd répertoire
  • -r: récursivement
  • -np: Ne pas aller dans les répertoires supérieurs, comme ccc/ ...
  • -nH: Ne pas enregistrer les fichiers dans le dossier hostname
  • --cut-dirs=3 : mais l'enregistrement à ddd, en omettant 3 premiers dossiers aaa, bbb, ccc
  • -R index.html: hors index.html fichiers

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

201
répondu Mingjiang Shi 2018-10-04 03:09:14

J'ai pu obtenir que cela fonctionne merci à ce post en utilisant VisualWGet. Il a très bien fonctionné pour moi. La partie importante semble être de vérifier le drapeau -recursive (voir image).

A également constaté que le drapeau -no-parent est important, sinon il essaiera de tout télécharger.

entrez la description de l'image icientrez la description de l'image ici

31
répondu mateuscb 2015-10-23 15:16:41

wget est une ressource précieuse et quelque chose que j'utilise moi-même. Cependant, il y a parfois des caractères dans l'adresse que wget identifie comme des erreurs de syntaxe. Je suis sûr qu'il y a une solution pour cela, mais comme cette question ne posait pas spécifiquement sur wget, j'ai pensé offrir une alternative pour ceux qui vont sans aucun doute tomber sur cette page à la recherche d'une solution rapide sans courbe d'apprentissage requise.

Il y a quelques extensions de navigateur qui peuvent le faire, mais la plupart exigent l'installation de gestionnaires de téléchargement, qui ne sont pas toujours GRATUITS, a tendance à être une horreur et à utiliser 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 le répertoire entier.

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

Pour un liste des fonctionnalités à jour et d'autres informations, visitez la page du projet sur le blog du développeur:

Http://monadownloadmaster.blogspot.com/

2
répondu Moscarda 2016-05-25 15:42:17
wget -r -np -nH --cut-dirs=3 -R index.html http://hostname/aaa/bbb/ccc/ddd/

À Partir de man wget

‘-r’ {[5]‘ '-- récursif ' Activez 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 jamais monter 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 sous une certaine hiérarchie seront téléchargés. Voir limites basées sur les répertoires, pour plus d'informations détail.

‘-nH’ ‘--no-accueil-répertoires’ Désactiver la génération de répertoires préfixés par l'hôte. Par défaut, appeler Wget avec ' - R http://fly.srk.fer.hr / ’ va créer une structure de répertoires commençant par fly.srk.fer.hr/. cette option désactive ce comportement.

‘--cut-dirs=nombre’ Ignorer 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.

Prendre, pour 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/. alors que l'option '- nH ' peut supprimer le ftp.xemacs.org / part, vous êtes toujours coincé avec pub / xemacs. C'est là que ‘--cut-dirs’ est pratique; cela fait que Wget ne "voit" pas le nombre de composants du répertoire distant. Voici plusieurs exemples de fonctionnement de l'option’ --cut-dirs'.

Pas d'options -> 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 juste vous débarrasser de la structure du répertoire, 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é sur xemacs / beta, comme on pouvait s'y attendre.

2
répondu Natalie Ng 2017-08-31 17:06:12

Aucun plugin requis!

Utilisez bookmarklet. Faites glisser ce lien dans les signets, et allez sur la page (à partir de laquelle vous voulez télécharger des fichiers), puis éditez et collez ce code:

(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(); } } })();
0
répondu T.Todua 2018-01-20 16:13:34