Witam,
Chce napisac skrypt ktory bedzie pobieral rozne informacje ze strony uzytkownika www.orange.pl. Jako ze jestm poczatkujacy w temacie Perl prosze o wskazowki jak to zrobic. Szczegolnie chodzi mi o logowanie do serwisu.
pozdr.
Witam,
Chce napisac skrypt ktory bedzie pobieral rozne informacje ze strony uzytkownika www.orange.pl. Jako ze jestm poczatkujacy w temacie Perl prosze o wskazowki jak to zrobic. Szczegolnie chodzi mi o logowanie do serwisu.
pozdr.
Nie ma problemu - zobacz modul WWW::Mechanize - jest prosty w uzyciu i bardzo sprawny. Moim zdaniem lepiej sie nadaje do tego typu zadan niz zwyczajny LWP.
Pelna dokumentacja do WWW::Mechanize jest razem z modulem albo na CPAN'ie.
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
Dzieki za dotychczasowa pomoc naskrobalem cos takiego jednak cos jest nie tak poniewaz pokazuje bledne haslo mimo ze na 100% jest poprawne.
Kod:use strict; use WWW::Mechanize; use Crypt::SSLeay; use HTTP::Cookies; my $url = "https://www.orange.pl/portal/map/map/"; my $outfile = "orange.htm"; my $usr ='yyy'; my $pas = 'xxx'; my $mech = WWW::Mechanize->new(); $mech->cookie_jar(HTTP::Cookies->new()); $mech->get($url); $mech->form_name('loginForm'); $mech->field(login=> $usr); $mech->field(passwd=> $pas); $mech->click(); my $output_page = $mech->content(); open(OUTFILE, ">$outfile"); print OUTFILE "$output_page"; close(OUTFILE);
sprobuj bez https
to fragment mojego kodu sprzed kilku miesiecy
ps cookie jar jest zbedny.Kod:my $mech = WWW::Mechanize->new( stack_depth => 0, autocheck => 0); my $url = 'http://www.xxx.pl/'; $mech->agent_alias( 'Windows IE 6' ); $mech->get("$url"); $mech->form_id("login"); $mech->field("login", $login); $mech->field("password", $pass); $mech->submit();
War, war never changes.
Problem w kodzie jest taki ze $mech->click() wymaga podania przycisku jaki ma zostac nacisniety i ewentualnie x,y koordynat w ramach przycisku.
$mech->submit() wysle form prawidlowo... i zobacz co bedzie wtedy.
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)