[LWP] probleme lors de l'identification sur un forum
Bonjour,
Je souhaite accéder à ce site en m'identifiant via le formulaire de connexion.
http://eterna-rpg.forumactif.net/login.forum?connexion
Pour cela j'utilise LWP et Form. J'ai déjà utilisé un programme similaire pour me connecter à perlmonks sans problème. Mais dans ce cas je reçoit une erreur de type "erreur 200OK" donc la condition "$validate->is_success" n'est pas réalisée.
Voici mon script quelqu'un pourrait il me dire si il détecte une erreur ?
Peut être est la présence de PHP ou de javascript dans le forum qui pose problème ?
Code:
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
|
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTML::Form;
# affiche tout
#use LWP::Debug qw(+);
chdir "G:/essai" or die "impossible de changer de repertoire: $!";
my $url = 'http://eterna-rpg.forumactif.net/login.forum?connexion';
my $broswer = new LWP::UserAgent;
my $request = new HTTP::Request( GET => $url);
my $res = $broswer->request($request);
if ($res->is_success) {
my $headers = $res->headers();
my $content = $res->content();
}else{
print "Erreur".$res->status_line."\n";
}
# le formulaire
my $form = HTML::Form->parse( $res->content, $url );
$form->value( username => 'rock' );
$form->value( password => 'vsuv8r3f' );
# valide et renvoie le formulaire
my $validate = $broswer->request( $form->click );
#sauvegarde de la réponse
if ($validate->is_success) {
open REP, ">page.html" or die "impossible d'ouvrir le fichier :$!";
select REP;
print $validate->content;
close REP;
select STDOUT;
print "success\n";
}else{
print "Erreur".$res->status_line."\n";
}
<STDIN>; |
Merci d'avance à qui voudra me donner un coup de main :cry:
Utilisation de WWW::Mechanize
Salut,
je viens de tester la connexion, et à priori il n'y a aucun problème.
Voici mon petit bout de code:
Code:
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
| #!c:/perl/bin -w
use strict; use warnings;
use WWW::Mechanize;
my $URL = "http://eterna-rpg.forumactif.net/login.forum?connexion";
my $m = WWW::Mechanize->new;
# récupération du formulaire
$m->agent_alias("Linux Mozilla");
$m->get( $URL );
die 'Échec de connexion : ' . $m->res->status_line()
unless $m->success();
# remplissage et validation
$m->set_fields(
username => 'rock', # entrez vos identifiants de connexion ici
password => 'vsuv8r3f'
);
# validation formulaire
$m->click();
# connexion réussie ?
die 'Échec de validation du formulaire : ' . $m->res()->status_line()
unless $m->success();
# affichage resultat
print $m->content( format => 'text' ); |
En espérant que cela a pu t'aider.
A +