Windows 登录到网站并在web浏览器中打开
我是perl新手,从mechanize开始 我成功登录到一个网站,但之后我想在中打开该网站 我的浏览器在windows中它只是打开网站,而不是在登录后打开Windows 登录到网站并在web浏览器中打开,windows,perl,Windows,Perl,我是perl新手,从mechanize开始 我成功登录到一个网站,但之后我想在中打开该网站 我的浏览器在windows中它只是打开网站,而不是在登录后打开 #!/usr/bin/perl -w use Win32::API; use WWW::Mechanize; use strict; use diagnostics; use warnings; my $m = WWW::Mechanize->new( autocheck => 1, onerror
#!/usr/bin/perl -w
use Win32::API;
use WWW::Mechanize;
use strict;
use diagnostics;
use warnings;
my $m = WWW::Mechanize->new(
autocheck => 1,
onerror => \&Carp::croak,);
my $Email = 'username';
my $Password = 'password';
my $url = 'http://www.gmail.com/';
my $response = $m->get($url);
if (!$response->is_success) {
die "Login page unreachable $url: ", $response->status_line, "\n";
}
$m->submit_form(
form_number => 1,
fields => {
'Username' => $Email,
'Password' => $Password,
},
);
$response = $m->submit();
$m->add_header(
"Connection" => "keep-alive",
"Keep-Alive" => "115");
#$response = $m->click();
if ($response->is_success) {
print "Login Successful!\n";
} else {
die "Login failed: ", $response->status_line, "\n";
}
my $ShellExecute =
new Win32::API( "shell32", "ShellExecute", [qw(N P P P P N)], 'N' );
my $GetDesktopWindow =
new Win32::API( "user32", "GetDesktopWindow", [], 'N' );
my $hWnd = $GetDesktopWindow->Call();
$ShellExecute->Call( $hWnd, 'open', $url, '', '', 1 );
啊。你不能这么做。 你是否曾经使用internet explorer登录gmail,然后期望它在firefox中工作 如果您需要使用浏览器登录
如果您真的需要使用just mechanize,那么您可能应该多读一些书来了解HTML表单和HTTP GET/POST是如何工作的。你不能只把
用户名
和密码
字段发送到Gmail,然后期待它神奇地工作。他们的服务器需要特定字段(不仅仅是这两个字段)。