[ script shell ] petit coup de pouce?

petit coup de pouce? [ script shell ] - Linux et OS Alternatifs

Marsh Posté le 18-03-2005 à 18:00:17    

ce que je cherche à faire :
télécharger par "groupe" comme dans flashget ou nettransport mais avec plusieurs boucles imbriquées
donc par exemple, télécharger
tous les
http://www.gpf-comics.com/comics/gpf20050301.jpg
on voit que le nom de l'image est fait de la date, donc pouvoir, sans le faire une par une, télécharger toutes les images (ici pour gpf, en réalité, ils s'amusent à mettre des noms chiants
http://www.gpf-comics.com/comics/gpf20050301dP5sG.jpg avec ce qui suit la date qui est variable et non prévisible mais bon, ce n'était qu'un exemple)
 
donc faire
 

Code :
  1. for (int i = 2000 ; i < 2006 ; i++)
  2. for (int j = 1 ; i < 13 ; i++)
  3. for (int k = 1 ; k < 32 ; k++)
  4. wget http://www.gpf-comics.com/comics/gpf(i)(j)(k).jpg


 
avec, en plus, le fait que "j" doit tenir sur deux caractères ainsi que k (donc il faut "01" et non "1" )
 
une idée?
pcq là jmate dans mon bouquin et online, et le for passe en revue des listes de valeurs, mais y'a ptet plus joli que de mettre les 31 valeurs pour k, 12 pour j etc...
surtout que j'aimerai quelque chose qui fonctionne même si maintenant jveux faire varier de 0 à 1000000 et là ce serait bien lourd d'avoir à indiquer toutes les valeurs une par une

Reply

Marsh Posté le 18-03-2005 à 18:00:17   

Reply

Marsh Posté le 18-03-2005 à 18:04:13    

tu as l'autorisation du proprio du site ?  
si non va leecher ailleurs ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 18-03-2005 à 18:05:00    

wget http//machinchose/*.jpg, ça marche

Reply

Marsh Posté le 18-03-2005 à 18:05:09    

le webmaster va apprécier que tu bouffe toute la bp juste pour un caprice.
 
La bande passante, c'est pas gratuit.

Reply

Marsh Posté le 18-03-2005 à 18:06:03    

c pas pire que d'aspirer un site pour avoir offline le site hein...

Reply

Marsh Posté le 18-03-2005 à 18:06:51    

man seq pour utiliser le for facilement. mais je doute que tu ais le droit de gruiker le site comme. :o


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 18-03-2005 à 18:07:54    

un aspirateur c'est pas plus simple?

Reply

Marsh Posté le 18-03-2005 à 18:08:04    

de toute façon son truc marchera pas :D


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 18-03-2005 à 18:08:41    

black_lord a écrit :

de toute façon son truc marchera pas :D


 
le wget?
 
bah, je fais comme ça sur le mien pour récup des trucs des fois

Reply

Marsh Posté le 18-03-2005 à 18:10:26    

regarde les noms des images ;)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 18-03-2005 à 18:10:26   

Reply

Marsh Posté le 18-03-2005 à 18:20:15    

ben koi, *.jpg ça roule, s'tout
 
ou alors y'a une subtilité que je vois pas?

Reply

Marsh Posté le 18-03-2005 à 18:23:19    

arghbis a écrit :

ben koi, *.jpg ça roule, s'tout
 
ou alors y'a une subtilité que je vois pas?


 
 :heink:
 
wget http://intairnet/*.avi aussi non ?


Message édité par ory le 18-03-2005 à 18:23:39
Reply

Marsh Posté le 18-03-2005 à 18:29:08    

ah oui beh non en fait, je croyais que je faisais comme ac, mais non... boulet attitude inside ;)

Reply

Marsh Posté le 18-03-2005 à 18:47:49    

black_lord a écrit :

tu as l'autorisation du proprio du site ?  
si non va leecher ailleurs ?

??? skoi le rapport? les gpf on peut les télécharger à la main, et c'est ce que je fais avec tous les webcomics que je lis (ça évite de devoir les retélécharger (pompant de la bande passante serveur ainsi que la mienne) et ça permet de les sauvegarder pour pouvoir les relire même si le mec aurait plus de tune pour le serveur ou autre (exemple avec Life Of Riley, ben y'a eu un mor dans le clan et pendant 1 an le site était down etc...))
mais bon, ça prend énormément de temps de les télécharger en même temps que je les lis
alors que si je les down tranquillement pour les matter avec acdsee c'est kan même plus confortable
 
jvois pas en quoi je leecherai en voulant simplement automatiser la tache que pour l'instant je fais à la main (jlai déja fait à la main pour les pvp, uf & all, mais bon, c vraiment chiant à faire pis c tellement monotone que j'en oublie etc...)

Reply

Marsh Posté le 18-03-2005 à 18:50:26    

ory a écrit :

le webmaster va apprécier que tu bouffe toute la bp juste pour un caprice.
 
La bande passante, c'est pas gratuit.

ben spour ça qu'en général lorsque je fais ça sous flashget je réduis le nombre de téléchargement simultané à 1 et la bande passante à du 1ko/sec
comme ça jlaisse le truc tourner pendant quelques heures sans faire chier personne
 
fin, bizarrement ça à l'air mal prit ce que je fais (alors que bon, ça me permet de les lire kan j'ai pas le net etc... vu qu'ensuite jpeux les graver sur cd, les passer à des potes sans le net & all)

Reply

Marsh Posté le 18-03-2005 à 18:51:40    

Nelyot Tchagui a écrit :

un aspirateur c'est pas plus simple?

vi c clair, mais là je gaspillerai vraiment la bande passante pour le serveur et moi même, vu que je pomperai plein de pages inutiles

Reply

Marsh Posté le 18-03-2005 à 18:52:45    

Aschrack a écrit :

ben spour ça qu'en général lorsque je fais ça sous flashget je réduis le nombre de téléchargement simultané à 1 et la bande passante à du 1ko/sec
comme ça jlaisse le truc tourner pendant quelques heures sans faire chier personne
 
fin, bizarrement ça à l'air mal prit ce que je fais (alors que bon, ça me permet de les lire kan j'ai pas le net etc... vu qu'ensuite jpeux les graver sur cd, les passer à des potes sans le net & all)


 
Je me méfie, en général des personnes qui pompent un site intégralemet se contrefoutent du problème éthique et technique que cela peut occasionner, ce qui ne semble pas être ton cas.
 
Essaye curl, regarde dans le man, c'est un outil extremement puissant

Reply

Marsh Posté le 18-03-2005 à 19:04:43    

Une petite boucle avec wget sur toutes les dates du calendrier pour récupérer la page html du jour, un grep avec une petite expression régulière ou du perl sur la page récupéré pour en extraire le nom de l'image et un wget sur l'URL de l'image  ;)  
man bash, man wget et man grep :D

Reply

Marsh Posté le 18-03-2005 à 19:18:24    

httrack :o
 
je teste webhttrack, c'est pas mal.

Reply

Marsh Posté le 18-03-2005 à 19:22:36    

drapo


---------------
Qui suis-je ? Que fais-je ? | phpLister | Perdu ? Vous êtes ici --> *
Reply

Marsh Posté le 19-03-2005 à 19:28:11    

LoninoL a écrit :

Une petite boucle avec wget sur toutes les dates du calendrier pour récupérer la page html du jour

ben en fait ct ça ma question :D gpf n'était qu'un exemple mal choisi (vu que juste choper les pages ça ne marche pas, mais effectivement jcomptais mater ensuite le content, y choper l'url de l'image etc...)
mais voila, j'ai pas encore capté comment faire
 
ceci
 
for (int i = 2000 ; i < 2006 ; i++)
for (int j = 1 ; i < 13 ; i++)
for (int k = 1 ; k < 32 ; k++)
wget http://www.gpf-comics.com/comics/gpf(i)(j)(k).jpg
 
avec en plus le fait que ce ne serait pas des entiers mais plutôt ptet des vecteurs de short unsigned int, chaque composante du vecteur étant un des chiffres (histoire de pouvoir avoir des zéros devant le 1)
 
(c'est là que finalement jme dis que je pouvais faire un pti prog qui fait ça, pis finirai par un exec de wget avec ce qu'il faut ... mais bon, c'est un peu le bazooka pour tuer un moustique j'ai l'impresison)

Reply

Marsh Posté le 19-03-2005 à 19:32:43    

la grosse question étant que lorsque je regarde le for, il semble qu'il faille faire
for var1 in "liste de valeur"
et bon, jvais pas indiquer 1 2 3 4 5 6 7 8 9 10 ...
si jdois aller jusque 10k
et ça ne résoud pas le problème si je souhaite avoir
001 002 003 004 ... et non 1 2 3 4

Reply

Marsh Posté le 19-03-2005 à 19:33:24    

Zaib3k a écrit :

man seq pour utiliser le for facilement.



---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 19-03-2005 à 19:48:07    

Aschrack a écrit :


et ça ne résoud pas le problème si je souhaite avoir
001 002 003 004 ... et non 1 2 3 4

Au pire tu fais quelque chose de ce genre:

Code :
  1. function deu
  2. {
  3.     if [ $1 -lt 10 ]
  4.         then ret="0$1"
  5.         else ret="$1"
  6.     fi
  7. }


et ensuite:

Code :
  1. foo=5
  2. deu $foo
  3. echo $ret

Mais il y a peut être mieux [:spamafote]  
 

Reply

Marsh Posté le 20-03-2005 à 02:26:25    

D'une part:
Man bash ==

for (( expr1 ; expr2 ; expr3 )) ; do list ; done
              First, the arithmetic expression expr1 is evaluated according to
              the  rules  described  below  under  ARITHMETIC EVALUATION.  The
              arithmetic expression expr2 is then evaluated  repeatedly  until
              it  evaluates  to zero.  Each time expr2 evaluates to a non-zero
              value, list is executed and the arithmetic expression  expr3  is
              evaluated.   If  any  expression is omitted, it behaves as if it
              evaluates to 1.  The return value is the exit status of the last
              command in list that is executed, or false if any of the expres-
              sions is invalid.


soit : for (( cpt; cpt <= MAX; cpt++ )) doit marcher.
 
D'autre par j'attaquerais le probleme dans un autre sens,
en effet le nom du fichier image est "codé"
donc je téléchargerais la page avec wget :

wget -O - -U Mozilla http://url


puis la page passerai dans grep pour trouver l'image :  

wget -O - -U Mozilla http://url | grep -o "http://site/rep/rep/*.\.jpg"


 
Bien sur c'est des idées à perfectionner... :)


---------------
Qui suis-je ? Que fais-je ? | phpLister | Perdu ? Vous êtes ici --> *
Reply

Marsh Posté le 26-03-2005 à 01:48:36    

merchi merchi merchi bcp à tous
pour ceux que ça interresse, jviens de finir avec ce script (que jdois encore adapter pour qu'il soit plus paramétrable)

Code :
  1. #!/bin/bash
  2. function get_two_digit
  3. {
  4. if [ $1 -lt 10 ]
  5. then ret="0$1"
  6. else ret="$1"
  7. fi
  8. }
  9. for ((annee = "2000" ; annee<="2005"; annee++)) ; do
  10. for ((mois = "1" ; mois<="12"; mois++)) ; do
  11.  for ((jour = "1" ; jour<="31"; jour++)) ; do
  12.   get_two_digit $annee;
  13.   annee2="$ret";
  14.   get_two_digit $mois;
  15.   mois2="$ret";
  16.   get_two_digit $jour;
  17.   jour2="$ret";
  18.   echo $jour2
  19.   wget --convert-links --limit-rate=5k http://www.gpf-comics.com/d/&#034; [...] #034;.html
  20.   grep "\<IMG ALT=\"comic\" BORDER=0 SRC=\"http://www.gpf-comics.com/comics/gpf" ./"$annee2""$mois2""$jour2".html > ./gpf.txt;
  21.   wget -i ./gpf.txt --force-html -c -N --proxy=OFF --limit-rate=5k --tries=5 --timeout=10 --non-verbose --append-output=./log.txt
  22.   rm ./"$annee2""$mois2""$jour2".html
  23.  done
  24. done
  25. done


 
j'ai voulu pouvoir insérer un temps d'attente entre chaque téléchargement, mais l'option wait de wget ne semble pas servir à ça
donc jvais plutôt chercher du côté de bash
 
Commentaire pour ceux qui veulent
 
- le convert-links permet d'obtenir un lien absolu
- je peux pas directement balancer tout ça dans un pipe pour grep il semble pcq convert-links veut un fichier sur dur
- --force-html ben c'est pcq le grep va choper toute la ligne où se trouve le nom du fichier, et pas seulement l'url. Mais si on interprete la sortie de grep en html ben c'est tout bon


Message édité par Aschrack le 26-03-2005 à 02:07:20
Reply

Marsh Posté le 26-03-2005 à 10:12:36    

Aschrack a écrit :


j'ai voulu pouvoir insérer un temps d'attente entre chaque téléchargement, mais l'option wait de wget ne semble pas servir à ça
donc jvais plutôt chercher du côté de bash


 
bash propose sleep  :)  

Reply

Marsh Posté le 28-05-2005 à 14:19:34    

salut moi je voudrais telecharger des fichiers rar en "partie" sur ce site http://*****
 
donc je fais la commande wget -c ****
mais ça ne marche pas, donc quelle commande je dois mettre ???
 
merci navou
 
edit :
on va éviter hein...


Message édité par stardrawer le 28-05-2005 à 17:21:16
Reply

Marsh Posté le 28-05-2005 à 14:34:46    

stardrawer a écrit :

salut moi je voudrais telecharger des fichiers rar en "partie" sur ce site http://******
 
donc je fais la commande wget -c http://*******
mais ça ne marche pas, donc quelle commande je dois mettre ???
 
merci navou


 
Chez moi ca marche  :??:


Message édité par LoninoL le 28-05-2005 à 17:21:44
Reply

Marsh Posté le 28-05-2005 à 14:36:39    

tenjou tenge c'est top :D


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
Reply

Marsh Posté le 28-05-2005 à 14:45:28    

marre des leechers [:benou]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 28-05-2005 à 17:22:43    

Zaib3k a écrit :

tenjou tenge c'est top :D


c'est bourrin , ceci dit ce n'est pas la section pour ce faire et le leechage c'est mal (tm).


---------------
Intermittent du GNU
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed