IdentifiantMot de passe
Loading...
Mot de passe oubli ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les rponses en temps rel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Tlchargement d'images et format JFIF


Sujet :

Web Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Dtails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 1
    Points
    1
    Par dfaut Tlchargement d'images et format JFIF
    Bonjour,

    J'ai cr un code perl , pour aspirer les jpeg de fond d'cran d'un site.
    Ca marche plutt bien, sauf que les images tlcharges sont au format JFIF(jpeg) , et devraient s'afficher correctement dans un navigateur , ce qui n'est pas le cas.

    J'ai tent de comparer les images tlcharges normalement par le navigateur, il y a quelques diffrences , mais minimes , les enttes JFIF sont bien l , et l'image devrait s'afficher, pourtant ca ne marche pas.

    Voici le code src

    Code : Slectionner tout - Visualiser dans une fentre part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
     use LWP::UserAgent;
      use HTML::LinkExtor;
      use URI::URL;
      use warnings;
      use strict;
     
      my $url = "http://www.google.fr";  # for instance
      my $ua = LWP::UserAgent->new;
      $ua->timeout(30);
     
     
     
     if ($ARGV[0] ne '') {$url= $ARGV[0];}
     
     
     if (!($url=~/^http/i)) {$url="http://".$url;}
     
      print "Recherche de liens sur $url\n";
     
      # Tableau global nécessaire a l'objet LinkExtor
      my @imgs = ();
     
      # Tableau des liens
      my @tablinks=();
     
      sub callback {
         my($tag, %attr) = @_;
     
         #return if $tag ne 'select';  # for a href
         push(@imgs, values %attr);
      }
     
     
    sub try_url {
      my ($url) = @_;
      my $p;
      my $res;
      my $base;
     
      @imgs=();
     
      # Make the parser.  Unfortunately, we don't know the base yet
      # (it might be different from $url)
      $p = HTML::LinkExtor->new(\&callback);
     
      # Request document and parse it as it arrives
      $res = $ua->request(HTTP::Request->new(GET => $url), sub {$p->parse($_[0])} );
     
      # Expand all URLs to absolute ones
     $base = $res->base;
      @imgs = map { $_ = url($_, $base)->abs; } @imgs;
     
      return @imgs;
    }
     
    sub compare_tableau {
    my $ref_tab1=shift;
    my $ref_tab2=shift;
    my %temp;
    my @tabfinal=();
     
    #print "Comparaison du contenu de tab1 dans =>tab2\n";
     
    @temp{@$ref_tab1} = 0..$#$ref_tab1;
     
      for my $val (@$ref_tab2) {
        if( exists $temp{$val} ) {
     
          #print "$val est présent \n";
     
        } else {
          push(@tabfinal,$val);   
          #print "$val n'est pas dans tab1.\n";
     
        }
      }
     
    return @tabfinal; 
    }
     
    sub estpresent {
    my $ref_url=shift;
    my $ref_tablinks=shift;
     
     
     
    #print "\n Compare $$ref_url avec @$ref_tablinks \n";
     
     
    for (@$ref_tablinks)
        {
            #if (exists $temp{$_}) {
            if ($_ eq $$ref_url){
     
                                    return 1;
                                    }
        }
     
    return 0;
    }
     
     
     
    sub parse_allurls {
     my ($url) =@_;
     my @tablocal=();
     
     
     #$recherche=join('\n',@tablinks);
     
     #if (!($recherche=~/$url/i))
     if (!(estpresent(\$url,\@tablinks)))
                {
     
                print "\nAppel de $url";
                @tablocal=try_url($url);
                push (@tablinks,$url);
     
                #print "\n------------------\n";
                #print "\n Elements extraits de $url \n";
                #print "\n @tablocal\n";
                #print "\n------------------\n";
     
                # Purge des élèments déja parcourus
                # dans tablocal
                @tablocal=compare_tableau(\@tablinks,\@tablocal);
     
     
                # Appel récursif
                foreach (@tablocal)
                    {
                        if ($_=~/.*?\.jpg/)
                        {
                        print "\n => $_ \n";
                        }
     
                        #print "\nAppel récursif de $_\n\n";
                        if ((!($_=~/^https/i)) && (!($_=~/.*?\.jpg/)) && (!($_=~/.*?\.pdf/)))
                        {
                        parse_allurls($_);
                        }
                    }
     
                }
        else
        {
                print "Url ".$_." déja parcourue\n";
        }
     
     
     
    }
     
    #parse_allurls($url);
     
     my $response = $ua->get($url);
     my @tablines=();
     my %links=();
     my $nomfichier;
     my $urlfichier;
     my $mystream;
     
     if ($response->is_success) {
         @tablines=split('\n',$response->decoded_content);  # or whatever
     }
     
     foreach (@tablines)
     {
        if ($_=~/javascript\:imgload\('(.*?)',.*?,'(.*?)'\).*?$/mi)
        {
        #push (@links,"$url/wallpaper/7yz4ma1/0".$2."_".$1."_1280x1024.jpg");
        #push (@myfiles,$1);
        $links{$1}="$url/wallpaper/7yz4ma1/0".$2."_".$1."_1280x1024.jpg";
        }
     }
     
     #foreach (@links) {
     for my $nomfichier ( keys %links )
                      {
                      $urlfichier=$links{$nomfichier}; 
                      print "Tentative de téléchargement de => ".$urlfichier."\n";
                      $response = $ua->get($urlfichier);
                      if ($response->is_success) {print "\nHTTP OK";}
                      $mystream=$response->decoded_content;
                      open(FILE, ">$nomfichier.jpg") || die "Erreur E/S:$!\n";
                        print FILE $mystream;
                      close(FILE);
                      }
     
     #for my $key ( keys %links )
        #{
         #   my $value = $links{$key};
          #  print "$key => $value\n";
        #}

    Et en pices jointe les deux fichiers l'un rcupr par le script, l'autre tlcharg via firefox.

    Les fichiers sont sur easyshare
    http://www.easy-share.com/1915363296/aprilmoon.zip


    Pice jointe 77410

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Dtails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 1
    Points
    1
    Par dfaut
    Le site c'est www.interfacelift.com

    Ca marchera mieux comme ca si vous voulez tester
    surtout que les pieces jointes sont innaccessibles sur easyshare

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Dtails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 1
    Points
    1
    Par dfaut
    J'ai effectu un test de diffrence entre deux fichier, un rcuper par le script et un tlcharg via firefox , sur le site www.interfacelift.com
    pour le fichier d'aprilmoon

    voici par exemple :

    Comparaison des fichiers 02578_aprilmoon_1280x1024.jpg et APRILMOON.JPG
    ***** 02578_aprilmoon_1280x1024.jpg
    826: k^azr
    827: $ofh D1N:W9poEO
    828:  zUOkg&,rE(XZvf5{FOvٻqS*E㵢(ZU\[nXºAL&.<|ˆn]s֩
    ***** APRILMOON.JPG
    826: k^azr
    827: $ofh D1N:W9poEO

    828:  zUOkg&,rE(XZvf5{FOvٻqS*E㵢(ZU\[nXºAL&.<|ˆn]s֩
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    859: 8e?7LP8Nţ\;ZՇfZ^j*]@ h$LtYqkbQ|vnVAyW }gFCֹ֨| *@k
    860: _3s֩9$*6
    ޟyO|.΍o*qso֡y}O}&zy#kӴ|8J?e6'α桩^m
    861: w|̟RnU{-Ρ~M>[qh<eyz~0l(C[)
    &'ŢDH$DA#B ZQd
    ***** APRILMOON.JPG
    859: 8e?7LP8Nţ\;ZՇfZ^j*]@ h$LtYqkbQ|vnVAyW }gFCֹ֨| *@k
    860: _3s֩9$*6
    ޟyO|.΍o*qso֡y}O}&zy#kӴ|8J?e6'α桩^m

    861: w|̟RnU{-Ρ~M>[qh<eyz~0l(C[)
    &'ŢDH$DA#B ZQd
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    1073: cptm2y5Qb>~z\-4oU!K6ҷK⤓Xo}{ @7{Ihv=6W6_utAqԦhi $a/#KSQ}–ÿoHf:m
    1074: Mj7&KFq+w*:>iI 8%$4Ƹ @7$07E?{<ug\$&9L**98q')".R<5IUӻczoY2yZ3fhٔ>=
    ***** APRILMOON.JPG
    1073: cptm2y5Qb>~z\-4oU!K6ҷK⤓Xo}{ @7{Ihv=6W6_utAqԦhi $a/#KSQ}–ÿoHf:m
    1074:
    1075: Mj7&KFq+w*:>iI 8%$4Ƹ @7$07E?{<ug\$&9L**98q')".R<5IUӻczoY2yZ3fhٔ>=
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    1780: 1*0?Rt;j&#
    1781: f]jOLb9̗qMP4~lʆzҥv8Xv;x
    1782: Sl!߷t<^gY
     gCP[߮\ `u>DnO5I!قxY4J]]SOj2 ĒH5Xxŗ\V2~hqk
    ***** APRILMOON.JPG
    1781: 1*0?Rt;j&#
    1782: f]jOLb9̗qMP4~lʆzҥv8Xv;x

    1783: Sl!߷t<^gY
     gCP[߮\ `u>DnO5I!قxY4J]]SOj2 ĒH5Xxŗ\V2~hqk
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    2256: 2'Yy2J/gG;.0ׅx yA?dŁi8 s@Uc ;5xd$RVGZQN.`bt.b)6hcxM,%h_^v
    2257: %,M#zU
    ***** APRILMOON.JPG
    2257: 2'Yy2J/gG;.0ׅx yA?dŁi8 s@Uc ;5xd$RVGZQN.`bt.b)6hcxM,%h_^v
    2258:
    2259: %,M#zU
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    5249: G1v1I6+@KLgF%h]y|弮 P\L\30*r;?]ˏy]gQrxQ}>3*#D,CJ rD6YM[{*|}+ZwaKa
    5250: Tø;J*
    ***** APRILMOON.JPG
    5251: G1v1I6+@KLgF%h]y|弮 P\L\30*r;?]ˏy]gQrxQ}>3*#D,CJ rD6YM[{*|}+ZwaKa
    5252:
    5253: Tø;J*
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    5622: OO*s@y+w+$efJĻo'}e#sͼ05kWN:/Vi#|̮ϼK_>OԯAY4+Z` $^&PW5 n
    5623: kDצ(!1ӎ^q]szP}ALX*;S"JfZb#P9’
    ***** APRILMOON.JPG
    5625: OO*s@y+w+$efJĻo'}e#sͼ05kWN:/Vi#|̮ϼK_>OԯAY4+Z` $^&PW5 n
    5626:
    5627: kDצ(!1ӎ^q]szP}ALX*;S"JfZb#P9’
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    6792: Q-&2%Wm(,6moW."Q4yVָyJ%
    6793: ujcEx s|JP P-Fh
    6794: YPij0-2@/<㞦&,{D5zWND)6TE#CnǿYA yJ<4ZK
    ***** APRILMOON.JPG
    6796: Q-&2%Wm(,6moW."Q4yVָyJ%
    6797: ujcEx s|JP P-Fh

    6798: YPij0-2@/<㞦&,{D5zWND)6TE#CnǿYA yJ<4ZK
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    7014: iY4d/
    
    7015: UL:0%Z*j
    7016: ‚,92RSu0ၴ%gx3[*
    ׉f BQ
    ***** APRILMOON.JPG
    7018: iY4d/
    
    7019: UL:0%Z*j

    7020: ‚,92RSu0ၴ%gx3[*
    ׉f BQ
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    7635: )2X¬*Y&*(E neOi5߉DQgVTs
    Z)*[krJ@ 0
    ftPvZL4A.)l.Wk
    7636: RQs^Hթi\q
    .dy
    7637: V,81)Y*\)Ӑ(v𷩲9<74K- n_e .
    ***** APRILMOON.JPG
    7639: )2X¬*Y&*(E neOi5߉DQgVTs
    Z)*[krJ@ 0
    ftPvZL4A.)l.Wk
    7640: RQs^Hթi\q
    .dy

    7641: V,81)Y*\)Ӑ(v𷩲9<74K- n_e .
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    7757: d%4qh*g
    7758: Jjk)*.Ԣ֓5J
    7759: J7 (Y@U<HPR
    ***** APRILMOON.JPG
    7761: d%4qh*g
    7762: Jjk)*.Ԣ֓5J

    7763: J7 (Y@U<HPR
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    7984: E9^e&HKdQF[Fhb* w=M&D;,^Te[׈#E
    KK{(Q9_Ns4
    8ȜU$m-Ϛ4]Qѵt3Mg˳.c
    7985: iCji-uCQ-r"SVY
    0iv4D6 C Xg16eVJvtja6W"pAMFre)&JFD2x4=Հ-Q@K/c
    7986:
    ***** APRILMOON.JPG
    7988: E9^e&HKdQF[Fhb* w=M&D;,^Te[׈#E
    KK{(Q9_Ns4
    8ȜU$m-Ϛ4]Qѵt3Mg˳.c
    7989: iCji-uCQ-r"SVY
    0iv4D6 C Xg16eVJvtja6W"pAMFre)&JFD2x4=Հ-Q@K/c

    7990:
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    8379: 謅&
    Gal&yHKcwBӼJXUԣxB"IȳNIȊ)`٢ݷEwa碑>V҇(/(Ke%bƥM.UY.{oYCʳ@ni`
    8380: G/"tUm
    V^N<㿈c
    ***** APRILMOON.JPG
    8383: 謅&
    Gal&yHKcwBӼJXUԣxB"IȳNIȊ)`٢ݷEwa碑>V҇(/(Ke%bƥM.UY.{oYCʳ@ni`
    8384:
    8385: G/"tUm
    V^N<㿈c
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    8626: 9 n55V(0 Sq9x-LHlTŜKuNM7.-
    8627: **t̥w@B㈍&hMB *@c#3el(]2YJܧ6ʶ콁v05`<1(s LBD(pJt6q/ܰУ݋mbKUX
    8628: %yk@t * I*_*Upqnb!e
    -qgA6
    ***** APRILMOON.JPG
    8631: 9 n55V(0 Sq9x-LHlTŜKuNM7.-
    8632: **t̥w@B㈍&hMB *@c#3el(]2YJܧ6ʶ콁v05`<1(s LBD(pJt6q/ܰУ݋mbKUX

    8633: %yk@t * I*_*Upqnb!e
    -qgA6
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    8639: hKeaU+6R` 2|E84^8uq{hq0\]N+LK
    --:<XGp/90^b#&+ʖK)~JP-WEE
    8640: n7d@F*K 89*8RF
    ***** APRILMOON.JPG
    8644: hKeaU+6R` 2|E84^8uq{hq0\]N+LK
    --:<XGp/90^b#&+ʖK)~JP-WEE
    8645:
    8646: n7d@F*K 89*8RF
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    8737: M4
    8738: (BVgR
    8739: pxlSD
    ***** APRILMOON.JPG
    8743: M4
    8744: (BVgR

    8745: pxlSD
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    8797: ݂ܬS"%%I 3` )K_Z@Bvy2.*-]5h 
    7u {0oPr[{rRrK",nZ(ks
    8798: CT
    ***** APRILMOON.JPG
    8803: ݂ܬS"%%I 3` )K_Z@Bvy2.*-]5h 
    7u {0oPr[{rRrK",nZ(ks
    8804:
    8805: CT
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    9325: J
    9326: ШRQhB7#)sEtЕFr M
    9327: XGK\Jö"L(wJu/@ٱvYB4ᨂ5k,RTɼ ]%
    ***** APRILMOON.JPG
    9332: J
    9333: ШRQhB7#)sEtЕFr M

    9334: XGK\Jö"L(wJu/@ٱvYB4ᨂ5k,RTɼ ]%
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    9870: 6@<NH8( X_FZdXsʂAJݩKr,*,"79w2
    *hDU]ȼ)
    Kwj3pp(o}VK[6)Bp&Hd[Z[h2UldsF
    9871:  ʇnw pT +yqQJwy2ћ%P[aFT`+fhFnG#9"V.
    ***** APRILMOON.JPG
    9877: 6@<NH8( X_FZdXsʂAJݩKr,*,"79w2
    *hDU]ȼ)
    Kwj3pp(o}VK[6)Bp&Hd[Z[h2UldsF
    9878:
    9879:  ʇnw pT +yqQJwy2ћ%P[aFT`+fhFnG#9"V.
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    9879: FBRj@4 *Z
    9880: V9C7p*QAֈP!*².+n!Jio1W$fu\?A<]
    9881:
    ***** APRILMOON.JPG
    9887: FBRj@4 *Z
    9888: V9C7p*QAֈP!*².+n!Jio1W$fu\?A<]

    9889:
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    10079: + )Q|g~F*3}!I?#dĩx]b"ŁOreb$3O) oiXݹb]1/=ɪ6 zum-tsdtgG<
    10080: }
    xe$lU'$E ?!/E;,t50u*s{ '`GU"
    10081: FE~!"@1{|Ex.>A3G3.ZÄc]QjFQ(Tuڍ{WC0!X̵Qu ' ;b^D5[,Ҭ:U1fIjhJ%_(k
    ***** APRILMOON.JPG
    10087: + )Q|g~F*3}!I?#dĩx]b"ŁOreb$3O) oiXݹb]1/=ɪ6 zum-tsdtgG<
    10088: }
    xe$lU'$E ?!/E;,t50u*s{ '`GU"

    10089: FE~!"@1{|Ex.>A3G3.ZÄc]QjFQ(Tuڍ{WC0!X̵Qu ' ;b^D5[,Ҭ:U1fIjhJ%_(k
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    10256: 瘴'~<-<uQ]Yz
    >#f<|
    10257: |C[Kw1gs
    10258: C'S?%]{K&eD }!ct6Jt@o ]B2/TB2
    ***** APRILMOON.JPG
    10264: 瘴'~<-<uQ]Yz
    >#f<|
    10265: |C[Kw1gs

    10266: C'S?%]{K&eD }!ct6Jt@o ]B2/TB2
    *****

    ***** 02578_aprilmoon_1280x1024.jpg
    11236: 2-L:/nZ}o<r*0amu)XQff`ƧP2مG7W5c2b Uo`**͋
    3/&]-1 q1{"q3*(uW1
    11237: é GnD"uu
    11238: x`n-
    ***** APRILMOON.JPG
    11244: 2-L:/nZ}o<r*0amu)XQff`ƧP2مG7W5c2b Uo`**͋
    3/&]-1 q1{"q3*(uW1
    11245: é GnD"uu

    11246: x`n-
    *****



    le script perl rajoute des retours chariots sur certaines lignes , je ne sais pas encore pourquoi je suppose que c'est cela qui rends le fichier illisible.
    Puisque sinon la commande fc de windows n'a dtect aucune autre diffrence en test ascii

  4. #4
    Membre rgulier Avatar de Tiger-222
    Homme Profil pro
    Dveloppeur informatique
    Inscrit en
    Janvier 2007
    Messages
    76
    Dtails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit : Dveloppeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 76
    Points : 106
    Points
    106
    Par dfaut
    Peut tre en ajoutant binmode FILE; en dessous de open(FILE, ">$nomfichier.jpg") || die "Erreur E/S:$!\n"; ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Dtails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Points : 1
    Points
    1
    Par dfaut
    Super ca marche

+ Rpondre la discussion
Cette discussion est rsolue.

Discussions similaires

  1. Ecrire une image au format CGM
    Par Blowih dans le forum C++
    Rponses: 3
    Dernier message: 17/02/2011, 11h31
  2. Tlchargement d'image
    Par bubble_gum dans le forum ASP
    Rponses: 6
    Dernier message: 12/05/2005, 23h13
  3. Utilisation d'images au format png
    Par chtiot dans le forum Langage
    Rponses: 2
    Dernier message: 24/10/2003, 15h56
  4. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Rponses: 3
    Dernier message: 31/05/2003, 21h59
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Rponses: 5
    Dernier message: 20/05/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo