Bonjour à tous,
Je voudrais créer un script ou une simple commande qui me permette de télécharger des fichiers numéroté de 1.xxx à 200.xxx par exemple au lieu de devoir télécharger un fichier après l'autre.
Voici la commande :
wget -r -np -A xxx http://un_site.com/un_répertoire/1.xxx
Qu'est ce qui ne va pas?
J'ai essayé :
wget -r -np -A xxx http://un_site.com/un_répertoire/*.xxx
mais ça ne fonctionne pas.
Ce sont des fichiers en Flash(.flv) qui sont caché sur le site mais que l'on retrouve dans le cache du navigateur IE par exemple et que l'on peu conserver mais il faut que je visionne tous les fichiers un après l'autre alors que je voudrais les dl simplement.
C'est avec ce petit programme Movies Extractor Scout Lite sous windows que j'ai pu voir l'adresse et ou sont caché ces fichiers ainsi que leurs nom.
Merci de m'aider.
# explications
Posté par Twidi (site web personnel) . Évalué à 3.
pour que le -r, recursif, fonctionne, il faut que wget sache quel lien suivre ! si la page que tu indiques ne contient pas de lien, il ne téléchargera aucun autre document.
Donc tu mets 1.xxx, lui il va le télécharger sans savoir quoi faire suite à ça.
Ensuite ton *.xxx, pareil, il lui faut une liste de fichiers pour savoir à quoi correspon "*", car si pour toi "*" c'est "tout", c'est aussi "toto.xxx", "23456.xxx"
Nan, la solution est, je pense, de faire une boucle de 1 à 200 qui va faire un wget du bon fichier
# en bash
Posté par B. franck . Évalué à 4.
for num in $(seq 1 200); do wget http://un_site.com/un_répertoire/$num.xxx; done
[^] # Re: en bash
Posté par kd . Évalué à 3.
$(seq -f %03g 1 200)
# man curl
Posté par Frédéric Lopez . Évalué à 4.
Options intéressantes :
-f : pour ne pas télécharger les fichiers non disponibles
-o : pour renommer les fichiers
Exemple :
curl "http://site.com/[1-10]/[01-10].xxx" -f -o #1_#2.xxx
#1 et #2 prennent les différentes valeurs des nombres entre crochets, ça permet d'obtenir les fichiers 1_01.xxx, 1_02.xxx, ..., 10_10.xxx.
[^] # Re: man curl
Posté par gtr . Évalué à -1.
La commande de Frédéric a presque fonctionné.
J'ai du tapé :
curl "/http://un_site.com/un_repertoire/[1-200]_original.flv" -f -O
et ensuite
curl "/http://un_site.com/un_repertoire/[1-200]_extented.flv" -f -O
car curl "http://un_site.com/un_repertoire/[1-200].xxx" -O n'a pas fonctionné.
Ça m'a permis de télécharger les fichiers "1_original.flv à 200_original.flv" et les fichiers "1_extented.flv à 200_extented.flv"
Je savais qu'il y avait les fichiers "x_original.flv et x_extented.flv" mais je ne sais pas s'il y en a d'autre.
Comment faire pour réussir à télécharger tous les fichiers .flv?
Merci
[^] # Re: man curl
Posté par Frédéric Lopez . Évalué à 2.
Par contre, si tu connais toutes les variations des noms de fichiers, tu peux aussi faire :
curl "/http://un_site.com/un_repertoire/[1-200]_{extented,original}.flv" -f -O
Ça permet d'obtenir les fichiers 1_original.flv, 1_extended.flv, ..., 200_original.flv, 200_extended.flv en une seule commande.
[^] # Re: man curl
Posté par gtr . Évalué à -1.
Y a pas moyen de remplacer le nom des fichiers par je ne sais quoi?
Je croyais que les "*" remplacait les noms mais ça ne fonctionne pas.
Merci pour les informations.
[^] # Re: man curl
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 1.
wget http://www.foo.com/bar/* il va essayer de télécharger les fichiers du repertoire de ta machine sur le site web. Ce qui ne va pas marcher car ils sont chez toi, pas là bas.
Si tu veux télécharger tout tout tout sans savoir ce qu'il y a, tu fais un script perl par exemple... Ou tu enregistres la page web, tu édites le code source pour récupérer la liste de tous les fichiers à télécharger, et tu faits un script à partir de cette liste...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.