如何让WWW-Mechanize登录Wells Fargo的网站?

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)

fri*_*edo 2

您需要对中间页面上发生的情况进行逆向工程。例如,它是否使用 Javascript 来设置一些 cookie?Mech 不会在页面上解析或执行 Javascript,因此它可能会尝试遵循元刷新,但会丢失一些有关最终请求需要发生的情况的关键信息。

尝试使用Firebug等工具来观察浏览器跟随元刷新时发送的请求。检查为请求最终页面而发送的所有请求标头,包括 cookie。然后使用 Mech 来复制它。