PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Perl] login script



nul
23-09-2005, 16:38
Anfaenglich sei gesagt, dass ich vor gestern noch nichts in Perl geschrieben habe, und nun zu meinem Problem:
Ich moechte mich ueber die Konsole auf einer Internetseite (https/loginformular anmelden). Mein Versuch schaub bisnoch so aus:

#!/opt/local/bin/perl -w

use LWP::UserAgent;

my $URL = 'https://plug-inn.uibk.ac.at/login.php';
my $user = '';
my $pwd = '';

my $ua = new LWP::UserAgent;

my $response = $ua->post( $URL,
{ pluginnname => $user, pluginnpwd => $pwd, } );

my $content = $response->content;

print $content;
Das <form></form> (wenn das wichtig ist) heisst pluginnval, kann mir jemand einen Tipp geben bzw. eine Seite wo sowas was ich vorhabe beschrieben ist?

mfg

RapidMax
23-09-2005, 22:07
Schau dir doch mal WWW::Mechanize::FormFiller an. Das kannst du auch im Shell-Modus starten um interaktiv zu experimentieren.

Gruss, Andy

nul
23-09-2005, 23:15
Ich bin jetzt soweit gekommen:

#!/opt/local/bin/perl -w

use LWP::UserAgent;
use HTML::Form;

my $f_user = 'pluginnname';
my $f_pwd = 'pluginnpwd';
my $user = '';
my $pwd = '';
my $url = 'https://plug-inn.uibk.ac.at/login.php';

my $ua = LWP::UserAgent->new();
my $response = $ua->get( $url );
my $forms = HTML::Form->parse( $response );

# Set the username and the password
$forms->value( $f_user, $user );
$forms->value( $f_pwd, $pwd );

$response = $ua->request( $forms->click );

print $response->content;
Erhalte dann aber die Antwort, dass ich das Skritpt nicht lokal starten soll, bzw. das Forumlar.
Das Skript soll aber bei mir auf der Shell laufen!

Ich schau mir mal deinen Tipp an, vielen Dank im voraus!
mfg

nul
24-09-2005, 00:14
OK, dein Tipp war ein voller erfolg!

#!/opt/local/bin/perl -w

use LWP::UserAgent;
use WWW::Mechanize;
use HTML::Form;

my $form = 'pluginnval'; # The name of the form
my $f_user = 'pluginnname'; # The input attribute for the username
my $f_pwd = 'pluginnpwd'; # The input attribute for the password
my $user = ''; # The username
my $pwd = ''; # The password
my $url = 'https://plug-inn.uibk.ac.at/login.php'; # The site

my $mech = WWW::Mechanize->new();

$mech->submit_form(
form_name => $form,
fields => { $f_user => $user, $f_pwd => $pwd, },
button => $button
);
print $mech->content;
So funktionierts!