Formular mit Post abrufen
Axel
- perl
Hallo,
ich versuche, mittels eines Perl-Programmes auf den Seiten des Kicker (www.kicker.de) den Punktestand beim dortigen Managerspiel abzurufen. Es gelingt mir aber nicht so richtig.
Ruft man die folgende Seite auf:
http://www.kicker.de/login/?ReturnUrl=/games/kickerblma0607/classic/meinkader?
und gibt dort als Nickname: milkman_2
mit Passwort: 12345678
müsste man eigentlich auf die Seite Gesamtwertung kommen. Rufe ich diese Seite aber mittels eines Perl-Skripts mit folgendem Befehl ab:
$res = $ua->post("http://www.kicker.de/login/?ReturnUrl=/games/kickerblma0607/classic/meinkader?
",
['userTextBox'=>'milkman_2',
'passwortTextBox'=>'12345678',
'rootPath'=>'http://www.kicker.de', 'returnUrlTextBox'=>'/games/kickerblma0607/classic/gesamtwertung?'
]);
if ($res->is_success) {
print "Inhalt:<br>";
print $res->content;
}
erscheint in der Ausgabe(-html-)Seite wieder das Eingabeformular. Gebe ich dort von Hand "milkman_2" und das Passwort "12345678" ein, gelange ich auf die Seite, die ich eigentlich mittels des Perl-Skripts automatisch abrufen will.
Was mache ich falsch?
Hey,
falsches Werkzeug. Nimm WWW::Mechanize, wenn Formulare im Spiel sind.
> mech-dump http://www.kicker.de/login/?ReturnUrl=/games/kickerblma0607/classic/meinkader?
POST http://www.kicker.de/home/suchergebnisse
q= (text)
Submit=<UNDEF> (button)
suche=web (radio) [kicker|*web/Web]
POST http://www.kicker.de/community/login/
userTextBox= (text)
returnUrlTextBox=/games/kickerblma0607/classic/meinkader? (hidden readonly)
passwortTextBox= (password)
loginPersistant=<UNDEF> (checkbox) [*<UNDEF>/off|on]
loginButton=Login (submit)
registerButton=<UNDEF> (button)
emailTextBox= (text)
pwAnfordernButton=Passwort anfordern (submit)
#!perl
use strict;
use diagnostics;
use Data::Dumper;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new;
$mech->get('http://www.kicker.de/login/?ReturnUrl=/games/kickerblma0607/classic/meinkader?');
$mech->submit_form(
form_number => 2,
fields => {
userTextBox => 'milkman_2',
passwortTextBox => '12345678',
},
button => 'loginButton',
);
#print Dumper [
# $mech->uri,
# $mech->status,
# $mech->ct,
# $mech->base,
# $mech->links,
# $mech->title,
# $mech->content,
#] if $mech->success;
print "Drin!\n" if $mech->content =~ /Mein Kader/;
Ich danke Dir ganz herzlich! Große Klasse!