Я пишу скрипт Perl для входа на сайт и отображения следующей страницы после входа в систему. Вот код:Perl Script для входа на сайт и отображения следующей страницы
#!/usr/bin/perl
use WWW::Mechanize;
use HTTP::Cookies;
my $m=WWW::Mechanize->new();
# Debug tricks
$m->default_header('Accept-Encoding' => scalar HTTP::Message::decodable());
$m->add_handler("request_send", sub { shift->dump; return });
$m->add_handler("response_done", sub { shift->dump; return });
my $outfile="out.htm";
$m->cookie_jar(HTTP::Cookies->new());
$url = '<url>';
$m->get($url);
$m->field(Email=>"abc");
$m->field(Passwd=>"def");
$m->click();
my $output_page= $m->content();
open(OUTFILE, ">$outfile");
print OUTFILE "$output_page";
close(OUTFILE);
sub open_default_browser{
$platform=$^O;
print "$platform";
$url=shift;
$cmd="start $url";
if(defined $cmd) {
system($cmd);
}
else {
die "Can't locate default browser";
}
}
open_default_browser($outfile);
Но когда я запускаю код все, что я получаю веб-страница с той же формой от URL.How может войти и отобразить следующую страницу. Мне нужно что-то изменить в коде?
Вы используете debug, прочитали ли вы отладочный вывод? Показать –
Этот код выглядит так, как будто он должен работать, предполагая, что 1) веб-сайт не требует JavaScript и 2) атрибуты 'name' полей в первой форме на странице:' Email' и 'Passwd' и 3) это только два поля, которые необходимо установить, и 4) вы используете правильный адрес электронной почты и пароль. К сожалению, не зная точного URL-адреса, с которым вы подключаетесь, мы, вероятно, не сможем помочь. Кроме того, этот скрипт не выполняет большую проверку ошибок; вы должны прочитать [docs] (https://metacpan.org/pod/WWW::Mechanize) для 'WWW :: Mechanize' и проверить, что, например, успешно выполняется запрос' GET'. – ThisSuitIsBlackNot
@sputnick Я новичок в perl, и поэтому я его читаю где-то. Но при запуске кода ничего не появляется в командной строке. Есть ли способ отладить код? – user227668