[R] Téléchargement d'images par paquet de 10
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
- Status : Hors ligne
[R] Téléchargement d'images par paquet de 10
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
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.
- TomAijerrie
- 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
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.
Les télécharger par lots ne fera (je pense) pas faire aller les choses plus vites.
-
- Status : Hors ligne
Re: [..] Téléchargement d'images par paquet de 10
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.
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.
- Tlem
- 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
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.
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é".
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é".
- orax
- 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
aria2c à l'air de correspondre à ce que tu cherches.
http://aria2.sourceforge.net/manual/en/html/aria2c.html
Code : Tout sélectionner
-j, --max-concurrent-downloads=<N>
-P, --parameterized-uri[=true|false]
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Re: [..] Téléchargement d'images par paquet de 10
J'avais bricolé un truc un peu comme tu veux, mais j'arrive pas à mettre la main dessus...
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
Mais je préfère largement la solution proposée par Orax ^^
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 ^^
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
- Tlem
- 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
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.
Envoyé de mon appareil mobile avec Tapatalk.
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
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é".
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é".
- orax
- 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
Normalement une seule instance de aria2 suffira. J'ai fait un essai avec cette commande :
J'ai bien un téléchargement de 10 images en même temps (en parallèle).
Code : Tout sélectionner
aria2c -j10 -Z -P http://.../images/[000-100].jpg
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
-
- Status : Hors ligne
Re: [..] Téléchargement d'images par paquet de 10
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
Ce sera je pense assez facile à mettre en œuvre avec en plus peu de ligne de code
Merci beaucoup !
je connaissais Aria2 mais ne l'avais jamais utilisé car wget avait toujours fait l'affaire, je pense que c'est maintenant l'occasion
Ce sera je pense assez facile à mettre en œuvre avec en plus peu de ligne de code
Merci beaucoup !
- Tlem
- 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
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.
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. ^^
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.
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é".
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é".
-
- Status : Hors ligne
Re: [R] Téléchargement d'images par paquet de 10
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
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