2013-06-20 102 views
0

我是新来的perl,我已经开始机械化。登录网站,并在网络浏览器中打开它

我登录到网站上成功地但在那之后我想在我的 在浏览器窗口中打开网页,它只是打开了网站,而不是在登录后。

#!/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); 
+1

也许你应该做一些更多的阅读理解HTML表单和HTTP GET/POST如何工作。你不能只发送'用户名'和'密码'字段到Gmail,并期望它神奇地工作。他们的服务器期待特定的领域(不仅仅是那两个)。 –

回答

相关问题