J M*_*ler 5 perl www-mechanize
我正在尝试使用Perl的WWW :: Mechanize登录我的银行并提取交易信息.通过浏览器登录我的银行(富国银行)后,它会短暂显示一个临时网页,上面写着"请等待我们验证您的身份".几秒钟后,它会进入银行的网页,我可以在那里获取我的银行数据.唯一的区别是URL包含多个附加到临时页面的URL的"GET"参数,该参数只有一个sessionID参数.
我能够成功地让WWW :: Mechanize从登录页面登录,但它被卡在临时页面上.<meta http-equiv="Refresh"标题中有一个...标记,所以我试过$mech->follow_meta_redirect但它也没有让我超过那个临时页面.
任何帮助过去这将是值得赞赏的.提前致谢.
以下是使我陷入临时页面的准系统代码:
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->agent_alias( 'Linux Mozilla' );
$mech->get( "https://www.wellsfargo.com" );
$mech->submit_form(
form_number => 2,
fields => {
userid => "$userid",
password => "$password"
},
button => "btnSignon"
);
Run Code Online (Sandbox Code Playgroud)
您需要对中间页面上发生的情况进行逆向工程。例如,它是否使用 Javascript 来设置一些 cookie?Mech 不会在页面上解析或执行 Javascript,因此它可能会尝试遵循元刷新,但会丢失一些有关最终请求需要发生的情况的关键信息。
尝试使用Firebug等工具来观察浏览器跟随元刷新时发送的请求。检查为请求最终页面而发送的所有请求标头,包括 cookie。然后使用 Mech 来复制它。