|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Anmelden an einer Internetseite und runterladen.
|
Seitenanfang |
| Hallo! Ich will ein Skript schreiben, daß sich beim Ausführen mit meinem Benutzernamen und Passwort an einer Seite anmeldet und nach dem Login die im Browser erscheinende Seite zieht. Das Ziehen einer Seite ist ja nicht schwer, nur kreige ich es nicht hin auf ner Seite einzuloggen. Ich habe es bereits mit den Modulen WWW::Mechanize, LWP::UserAgent und HTML::Form versucht, nur kriege ich es nicht hin ein funktionierendes Skript zu scheiben. Habe Probleme damit mir die richtigen Sachen aus den Anleitungen der Module auf CPAN zusammen zu suchen. Bin die ganze Zeit dabei mit wa zusammenzuzimmern, aber nichts klappt. Hoffe ihr könnt mir helfen. MfG
Datum: 07.03.2008-16:38

|
re: Anmelden an einer Internetseite und runterladen.
|
Seitenanfang |
| Benutze Firefox und schaue Dir mit dem Plugin LiveHttpHeaders an, welche Requests gesendet werden. Und dann kannst Du das ganze relativ einfach mit WWW::Mechanize oder LWP::UserAgent nachbauen. Falls auf der Seite Cookies verwendet werden, musst Du noch ein HTTP::Cookies-Objekt erzeugen und mit cookie_jar an das jeweilige Objekt übergeben. Wenn Du hier etwas Code reinstellst, kann man Dir leichter helfen...
Datum: 07.03.2008-18:09

|
re: Anmelden an einer Internetseite und runterladen.
|
Seitenanfang |
| Erstmal Danke für die schnelle Antwort. Ich habe es z.B.: so versucht bei StudiVZ: use WWW::Mechanize; my $mech = WWW::Mechanize->new(); $url = 'http://www.studivz.net/Login'; $mech->get( $url ); $mech->submit_form( form_number => 1, fields => { email => 'xxx', password => 'xxx', } ); if ($mech->res->is_success) { print "Eingeloggt"; } Ich weiß nicht, ob ich die Frage nach der Antwort richtig habe. Die Seite nach dem einloggen ist http://www.studivz.net/Start Kriege ich die mit $mech->follow_link( url => 'Einloggen' ); oder so was? Live HTTP Headers zeigt mir diesen Post an: POST /Login email=xxxxx%40xxxxx.de&password=xxxxxxx&login=Einloggen&jsEnabled=true&formkey=887c8ef841a584cffd90415a433e2f04f010b217c3e6bbdbc92fe83490b86030a9af899bff4bdb4516c78aa92585842bb1f0c0c3c6d387edb9e1b3efab367062&iv=846d177c6334f8bd1662a507b7f22005&checkcode=3e075e229de2ea6416deab795b7fc78f an. Hatte auch schon versucht, das beim Aufruf der Seite anzugeben und mich so einzuloggen, ging aber nicht.
Datum: 07.03.2008-19:19

|
re: Anmelden an einer Internetseite und runterladen.
|
Seitenanfang |
Also. Ich habe mir mal den POST genauer angesehen und festegestellt, da da noch mehr submittet wird un zwar jsEnabled, formkey, iv und checkcode. Also so: use strict; use WWW::Mechanize; my $login = 'bastianvoegel@web.de'; my $password = 'limpbizkit'; my $url = "http://www.studivz.net/Login"; my $mech = WWW::Mechanize->new(); $mech->get($url); $mech->submit_form( form_number => 1, fields => { email => $login, password => $password, jsEnabled => 'true', formkey => 'd944b337936b9025295c560cd119494f3ea9459fd5bea7c542870ad4b9f1d211ff527a79b98f2f6e27c9049015dd79cc071eb1b591a4223205fcaeb882a0599d', iv => 'eb86b7cb533080b9bf99d1a91f1de5ce', checkcode => '5f883a1c82c576261aa2cd14f9e49624' }, ); die unless ($mech->success); Die wechseln zwar immer bei jedem einloggen, aber die alten gehen auch. Trotzdem stribt das Skript....
Datum: 07.03.2008-21:49

|
re: Anmelden an einer Internetseite und runterladen.
|
Seitenanfang |
| Sch*********!!!! Egal. Das passwort ändere ich.
Datum: 07.03.2008-21:50

|
|

|

|

|
 |

|

|
|