Mon accès au répertoire mysite.com/img/ est bloqué.
Cependant, toutes les images de ce répertoire sont sous la forme n.jpg
Où n est la nième image.
Mon accès à mysite.com/img/n.jpg
N'est pas bloqué
Existe-t-il de toute façon que j'enregistre les images 1 à 500 (mysite.com/img/1.jpg
À mysite.com/img/500.jpg
)?
J'utilise Ubuntu 11.10
La solution la plus simple consiste probablement à utiliser des extensions d'accolade bash
wget http://mysite.com/img/{1..500}.jpg
Il y a aussi la possibilité de faire une boucle, vous permettant de mettre un peu d'attente entre chaque requête.
for n in $(seq 1 500); do
wget http://mysite.com/img/${n}.jpg
sleep 0.1
done
(Ce qui précède peut être exécuté directement dans le shell.)
Il existe également une autre façon de le faire avec wget
que j'ai utilisé avec succès pour un site, et vous devriez pouvoir modifier les instructions ci-dessous pour d'autres sites. Cela implique de générer une liste d'URL, puis de nourrir cette liste dans wget
.
1) Par exemple, disons que vous voulez télécharger les 63 magazines pdf de Full Circle Magazine (un magazine Ubuntu), mais votre gestionnaire de téléchargement ne peut pas tous les télécharger en même temps. Trouvez donc le lien du premier fichier pdf et vérifiez rapidement que les autres liens du magazine sont au même format URL.
2) Avec les connaissances acquises dans la partie 1, nous pouvons maintenant nous tourner vers notre script pour générer les urls. Le script ci-dessous exécute une boucle jusqu'à, que j'ai modifiée (crédit à son auteur). Vous modifiez ce script en plaçant le nombre de magasins dans le until [ $i = 63 ]
part et placez l'url correcte après echo
et assurez-vous que "$i"
se trouve dans la partie correcte de l'URL à faire écho afin qu'elle change à chaque exécution de la boucle. Les URL sont générées puis ajoutées à un fichier texte - cela se produit en une fraction de seconde lorsque le script est exécuté et n'est pas aussi compliqué à configurer qu'il n'y paraît!
Enregistrez le script dans un éditeur de texte, rendez-le exécutable et exécutez-le; Modifiez-le comme décrit ci-dessus lorsque vous souhaitez télécharger à partir d'un site différent que mon exemple.
#!/bin/bash
i=0
until [ $i = 63 ] ; do
i=$(($i+1))
echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt
done
3) Enfin, en supposant que url.txt
est dans le répertoire de travail actuel, exécutez:
wget -i url.txt
Si vous souhaitez enregistrer les téléchargements ailleurs, ajoutez -P ~/MyDirectory
après url.txt
Cela fonctionne - si vous l'essayez, entrez ctrl c
à abandonner si vous ne voulez pas tous les télécharger!