我想用Perl的WWW::Mechanize登錄我的銀行並提取交易信息。在通過瀏覽器登錄我的銀行(Wells Fargo)後,它簡要地顯示了一個臨時網頁,上面寫着「請等待,而我們驗證您的身份」。幾秒鐘後,它進入銀行的網頁,我可以獲取我的銀行數據。唯一的區別是URL包含多個附加到臨時頁面的URL的「GET」參數,該臨時頁面只有一個sessionID參數。如何獲得WWW-Mechanize登錄Wells Fargo的網站?
我能夠成功獲取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"
);
感謝您指向Firebug。我安裝了它並注意到在中介頁面中有一個'
'行,它引用了一個javascript函數。我猜測我運氣不好,因爲Mech在這個時候無法處理javascript。 – 2010-05-01 12:22:41你可能不會走運,你只需要找出那些Javascript函數在做什麼,並讓Mech做同樣的事情。使用Firebug觀看HTTP交易 - 是否有任何POST字段或cookie,您以前沒有看到? JS可能會添加它們,所以將Mech加入相同的東西。 – friedo 2010-05-01 18:10:44