Pb avec LWP pour télécharger une image
Le
Steph
Salut,
J'essaye de récupérer un fichier gif généré par un serveur Web et je n'y
arrive pas
Pour un vrai fichier ca marche mais pour un fichier généré à la volée
mon script ne me récupère systématiquement que 49 octets.
Des idées ?
Voici le script, avec l'url du fichier sur google ca marche mais avec
l'autre ca coince.
Pourant la 2eme Url dans mon navigateur m'affiche bien une image et elle
fait plus de 49 octets.
Merci !
use strict;
use LWP::UserAgent;
use HTTP::Request;
#########################################
##### Avec cet Url ca marche ############
#### my $url = 'http://www.google.com/images/nav_logo3.png';
#### my $filename = "logo3.png";
#########################################
#### Là ca ne marche pas
my
$url='http://www.seloger.com/cgi/getimg.a...d&size(';
my $referer = "http://www.seloger.com/3056/3759286...htm";
my $filename = "image.gif";
#########################################
my $agent = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)';
my $ua = new LWP::UserAgent
(
agent => $agent,
timeout => 5
);
my $request = new HTTP::Request(GET => $url);
$request->referer($referer);
my $result = $ua->request($request);
if ($result->is_success)
{
print "Ok !";
# print $result->content;
open(FH, ">$filename")
or die "Failed to create $filename: $!";
binmode FH;
print FH $result->content;
close FH;
}
else
{
print "Erreur : " . $result->status_line;
}
J'essaye de récupérer un fichier gif généré par un serveur Web et je n'y
arrive pas
Pour un vrai fichier ca marche mais pour un fichier généré à la volée
mon script ne me récupère systématiquement que 49 octets.
Des idées ?
Voici le script, avec l'url du fichier sur google ca marche mais avec
l'autre ca coince.
Pourant la 2eme Url dans mon navigateur m'affiche bien une image et elle
fait plus de 49 octets.
Merci !
use strict;
use LWP::UserAgent;
use HTTP::Request;
#########################################
##### Avec cet Url ca marche ############
#### my $url = 'http://www.google.com/images/nav_logo3.png';
#### my $filename = "logo3.png";
#########################################
#### Là ca ne marche pas
my
$url='http://www.seloger.com/cgi/getimg.a...d&size(';
my $referer = "http://www.seloger.com/3056/3759286...htm";
my $filename = "image.gif";
#########################################
my $agent = 'Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)';
my $ua = new LWP::UserAgent
(
agent => $agent,
timeout => 5
);
my $request = new HTTP::Request(GET => $url);
$request->referer($referer);
my $result = $ua->request($request);
if ($result->is_success)
{
print "Ok !";
# print $result->content;
open(FH, ">$filename")
or die "Failed to create $filename: $!";
binmode FH;
print FH $result->content;
close FH;
}
else
{
print "Erreur : " . $result->status_line;
}

Poser une question


Chez moi, ça récupère un GIF 1×1 tout à fait valide de 49 octets.
Pas chez moi.
Probablement des histoires de cookies qui permettent au serveur de te
reconnaître.
Et dans ton navigateur, en passant par la page correspondant à $referer ?
Je vais creuser de ce côté merci.
C'est §a que je r©pondais.