[R] Téléchargement d'images par paquet de 10

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Utilisateur 3309 supprimé
Status : Hors ligne

[R] Téléchargement d'images par paquet de 10

#1

Message par Utilisateur 3309 supprimé »

bonjour,
je recherche la méthode la plus efficace/rapide pour automatiser le téléchargement de 153 images (c'est un exemple) qui se trouvent sur un site web.
les images sont numérotées de 001 a 153 sous cette forme:
http://www.monsite.com/images/001.jpg jusqu'à 153.jpg

une boucle simple avec inetget en background ne marche pas bien, je suis limité 2 téléchargements simultanés, et il faut bidouiller dans la base de registre pour augmenter la limitation. J'ai essayé en exécutant un wget.exe mais ca me lance 153x l'exécutable et ca me bouffe toute ma mémoire (4Go !!).
Donc ce qu'il me faudrait si je continue avec l'utilisation de wget.exe, c'est d'en avoir par exemple que 10 process qui se lancent et pas plus. Mais je ne vois pas comment faire ma boucle pour qu'un process se lance lorsqu'un autre a fini de télécharger.
quelqu'un a t'il un bout de code qui fait ce genre de chose ?

Merci
Modifié en dernier par Utilisateur 3309 supprimé le dim. 01 mars 2015 10:17, modifié 1 fois.
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10  

#2

Message par TomAijerrie »

Je te conseil de les télécharger une à une pour eviter les erreurs de réseau (saturation de la ligne...)
Les télécharger par lots ne fera (je pense) pas faire aller les choses plus vites.
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#3

Message par Utilisateur 3309 supprimé »

je n'ai aucune erreur réseau quel que soit le moyen utilisé.
telecharger 1 par 1, ca marche met ca met beaucoup trop de temps.
Télécharger avec wget en background c'est super rapide mais ca prend toute la mémoire.
Pour moi le bon compromis c'est de controler le nombre de process wget et de le maintenir a 10 (ou plus suivant convenance).
S'il y a d'autres moyens que wget qui permettent de telecharger plusieurs images en simultané je suis preneur.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#4

Message par Tlem »

Bonsoir.
Pourquoi voulez-vous vous prendre la tête à contrôler qu'il y ait toujours 10 processus Wget actifs. Si vous voulez gagner du temps, lancez 10 téléchargements Wget, et lorsque le dernier termine (plus de Wget dans les processus), on relance en relance 10. ^^

Si vous tenez à faire compliqué, vous devrez lancer chaque téléchargement Wget en récupérant chaque ID. Ensuite il faut surveiller chaque ID et si l'un d'eux ce termine alors on lance un nouveau téléchargement.

Une alternative : Lancez 10 téléchargements. Surveillez le nombre de processus Wget. Si < 10 alors on relance un téléchargement.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#5

Message par orax »

aria2c à l'air de correspondre à ce que tu cherches.

Code : Tout sélectionner

-j, --max-concurrent-downloads=<N>
-P, --parameterized-uri[=true|false]
http://aria2.sourceforge.net/manual/en/html/aria2c.html
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2511
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#6

Message par jguinch »

J'avais bricolé un truc un peu comme tu veux, mais j'arrive pas à mettre la main dessus... :cry:

Sinon, pour faire plus simple, l'option -l de wget permet d'indiquer en entrée un fichier contenant la liste des liens à télécharger.
Tu peux par exemple créer 10 fichiers contenant chacun une partie des liens (tu divises le nombre de liens (153) par 10 = 15 liens par fichier et 3 pour le dernier)
Tu lances parallèlement 10 wget avec en entrée le nom de chaque fichier de liste : wget -l liste1.txt -P chemin_destination, puis liste2.txt ...
Quand les 10 process sont terminés, c'est fini.

Edit : j'ai retrouvé mon code et modifié les liens pour le test
► Afficher le texte

Mais je préfère largement la solution proposée par Orax ^^ :wink:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#7

Message par Tlem »

Bonsoir.
La solution d'Orax présente en effet certains intérêts. Mais Cetipabo fera comme avec Wget une boucle qui lancera aussi un certain nombre de téléchargement simultané (X fois la ligne de commande) et donc la ressource mémoire va diminuer d'autant.

Je pense que aria2 utilisé avec une liste de fichiers devrait résoudre une bonne partie du problème.

Code : Tout sélectionner

aria2c -i ListeFichiers.txt
Envoyé de mon appareil mobile avec Tapatalk.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#8

Message par orax »

Normalement une seule instance de aria2 suffira. J'ai fait un essai avec cette commande :

Code : Tout sélectionner

aria2c -j10 -Z -P http://.../images/[000-100].jpg
J'ai bien un téléchargement de 10 images en même temps (en parallèle).
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [..] Téléchargement d'images par paquet de 10

#9

Message par Utilisateur 3309 supprimé »

Merci Tlem, Jguinch et Orax,
je connaissais Aria2 mais ne l'avais jamais utilisé car wget avait toujours fait l'affaire, je pense que c'est maintenant l'occasion :D
Ce sera je pense assez facile à mettre en œuvre avec en plus peu de ligne de code :mrgreen:

Merci beaucoup ! 8)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Téléchargement d'images par paquet de 10

#10

Message par Tlem »

Re.
Ne connaissant pas aria2c, j'ai fait quelques recherches et tests. ^^

aria2c présente en effet quelques avantages, mais par rapport à la dernière version de Wget autonome que j'ai trouvé (la version 1.11.4), il y a une sacré différence de taille. :shock:

Ceci dit, si la taille de l'exécutable n'est pas un problème, le téléchargement de plusieurs fichiers pour un total de 150Mo me donne :

Wget v1.11.4 (392 Ko) a eu une consommation mémoire de 1452 Ko.
aria2 v1.18.10 (4187 Ko) à eu une consommation mémoire dynamique comprise entre 1400 Ko et 3000 Ko.

Le serveur sur lequel j'ai fait le test ne supportant pas les connexions multiples, je n'ai vu aucune différence de temps dans le téléchargement. Par contre si le serveur supporte cette fonctionnalité, je suppose qu'un gain de temps certain devrait être visible. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] Téléchargement d'images par paquet de 10

#11

Message par Utilisateur 3309 supprimé »

Merci pour le feedback Tlem.

Dans mon cas Aria2c fonctionne du feu de dieu, je l'adopte direct ! je télécharge avec 16 connexions simultanées environ 200 images en une 20ene de secondes, avec une consommation mémoire tout a fait correcte sur un PC standard, 11Mo.

D'autre part j'apprécie la syntaxe [000-100].jpg grace au paramètre -P
Répondre