Comment utiliser Wget pour télécharger toutes les images dans un seul dossier, à partir d'une URL?

133

J'utilise wget pour télécharger toutes les images d'un site Web et cela fonctionne bien, mais il stocke la hiérarchie originale du site avec tous les sous-dossiers et les images sont donc parsemées. Existe-t-il un moyen de télécharger toutes les images dans un seul dossier? La syntaxe que j'utilise en ce moment est:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
geoffs3310
la source

Réponses:

194

Essaye ça:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Voici quelques informations supplémentaires:

-ndempêche la création d'une hiérarchie de répertoires (c'est-à-dire pas de répertoires ).

-ractive la récupération récursive. Voir Téléchargement récursif pour plus d'informations.

-P définit le préfixe du répertoire dans lequel tous les fichiers et répertoires sont enregistrés.

-Adéfinit une liste blanche pour récupérer uniquement certains types de fichiers. Les chaînes et les modèles sont acceptés, et les deux peuvent être utilisés dans une liste séparée par des virgules (comme vu ci-dessus). Voir Types de fichiers pour plus d'informations.

Jon
la source
5
Cela n'a pas fonctionné pour moi. Mon emplacement de sauvegarde était "." et il a copié toute la hiérarchie du site là-bas.
Buttle Butkus
2
@ButtleButkus Il semble que vous ayez besoin d'un peu plus de désordre avec l' -Aoption accept , consultez la documentation Wget sur les types de fichiers . De plus, si vous téléchargez dans le répertoire actuel, vous pouvez supprimer l' -Poption de préfixe de répertoire . Si vous téléchargez un seul type de fichier, comme uniquement jpg, utilisez quelque chose comme wget -r -A.jpg http://www.domain.com. Regardez les exemples avancés fournis par la documentation Wget.
Jon
Ajouter -nd à ce qui précède le fait fonctionner. Vous pouvez également spécifier plusieurs indicateurs -A tels que-A "*foo*" -A "*bar*"
Yablargo
1
N'oubliez pas d'utiliser --level=infou --level=9999999999car wgetest susceptible de saboter le travail en raison du niveau de profondeur de récursivité maximal par défaut de 5.
user619271
127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: pas de répertoires (enregistre tous les fichiers dans le répertoire courant; -P directorychange le répertoire cible)
  • -r -l 2: niveau récursif 2
  • -A: extensions acceptées
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: span hosts (wget ne télécharge pas les fichiers de différents domaines ou sous-domaines par défaut)
  • -p: conditions requises de la page (inclut des ressources comme des images sur chaque page)
  • -e robots=off: exécute la commande robotos=offcomme si elle faisait partie du .wgetrcfichier. Cela désactive l'exclusion du robot, ce qui signifie que vous ignorez le fichier robots.txt et les balises méta du robot (vous devez connaître les implications que cela entraîne, faites attention).

Exemple: obtenez tous les .jpgfichiers à partir d'une liste de répertoires exemplaire:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/
Lri
la source
9

Essaye celui-là:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

et attendez qu'il supprime toutes les informations supplémentaires

orezvani
la source
Cela ne fonctionne pas pour moi. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo
5

D'après la page de manuel, l'indicateur -P est:

-P prefix --directory-prefix = prefix Définit le préfixe du répertoire sur prefix. Le préfixe de répertoire est le répertoire dans lequel tous les autres fichiers et sous-répertoires seront enregistrés, c'est-à-dire le haut de l'arborescence de récupération. La valeur par défaut est. (le répertoire courant).

Cela signifie qu'il spécifie uniquement la destination mais où enregistrer l'arborescence de répertoires. Il n'aplatit pas l'arborescence en un seul répertoire . Comme mentionné précédemment, l'indicateur -nd le fait.

@Jon à l'avenir, il serait utile de décrire ce que fait le drapeau pour que nous comprenions comment quelque chose fonctionne.

Michael Yagudaev
la source
2

Les solutions proposées sont parfaites pour télécharger les images et s'il vous suffit de sauvegarder tous les fichiers dans le répertoire que vous utilisez. Mais si vous souhaitez sauvegarder toutes les images dans un répertoire spécifié sans reproduire l'intégralité de l'arborescence hiérarchique du site, essayez d'ajouter "cut-dirs" à la ligne proposée par Jon.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

dans ce cas, les répertoires de coupe empêcheront wget de créer des sous-répertoires jusqu'au 3ème niveau de profondeur dans l'arborescence hiérarchique du site Web, en enregistrant tous les fichiers dans le répertoire que vous avez spécifié. traitent de sites avec une structure profonde.

hugi coapete
la source
-7

L'utilitaire wget récupère les fichiers du World Wide Web (WWW) en utilisant des protocoles largement utilisés comme HTTP, HTTPS et FTP. L'utilitaire Wget est un package disponible gratuitement et la licence est sous licence GNU GPL. Cet utilitaire peut installer n'importe quel système d'exploitation de type Unix, y compris Windows et MAC OS. C'est un outil de ligne de commande non interactif. La caractéristique principale de Wget est sa robustesse. Il est conçu de manière à fonctionner dans des connexions réseau lentes ou instables. Wget démarre automatiquement le téléchargement là où il a été laissé en cas de problème de réseau. Télécharge également le fichier de manière récursive. Il continuera d'essayer jusqu'à ce que le fichier soit complètement récupéré.

Installez wget dans la machine Linux sudo apt-get install wget

Créez un dossier dans lequel vous souhaitez télécharger des fichiers. sudo mkdir myimages cd myimages

Faites un clic droit sur la page Web et, par exemple, si vous voulez l'emplacement de l'image, faites un clic droit sur l'image et copiez l'emplacement de l'image. S'il y a plusieurs images, procédez comme suit:

S'il y a 20 images à télécharger à partir du Web en même temps, la plage commence de 0 à 19.

wget http://joindiaspora.com/img {0..19} .jpg

Trupti Kini
la source
2
Votre réponse explique ce qu'est wget et comment l'utiliser pour télécharger des images numérotées séquentiellement ... ni l'un ni l'autre ne sont liés à la question d'origine.
Alastair