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
-A
option 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'-P
option de préfixe de répertoire . Si vous téléchargez un seul type de fichier, comme uniquement jpg, utilisez quelque chose commewget -r -A.jpg http://www.domain.com
. Regardez les exemples avancés fournis par la documentation Wget.-nd
à ce qui précède le fait fonctionner. Vous pouvez également spécifier plusieurs indicateurs -A tels que-A "*foo*" -A "*bar*"
--level=inf
ou--level=9999999999
carwget
est susceptible de saboter le travail en raison du niveau de profondeur de récursivité maximal par défaut de5
.-nd
: pas de répertoires (enregistre tous les fichiers dans le répertoire courant;-P directory
change le répertoire cible)-r -l 2
: niveau récursif 2-A
: extensions acceptées-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 commanderobotos=off
comme si elle faisait partie du.wgetrc
fichier. 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
.jpg
fichiers à partir d'une liste de répertoires exemplaire:la source
J'ai écrit un shellscript qui résout ce problème pour plusieurs sites Web: https://github.com/eduardschaeli/wget-image-scraper
(Supprime les images d'une liste d'urls avec wget)
la source
Essaye celui-là:
et attendez qu'il supprime toutes les informations supplémentaires
la source
wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
D'après la page de manuel, l'indicateur -P est:
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.
la source
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.
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.
la source
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
la source