2011-04-12 46 views
0

我發現了一個腳本來訪問此論壇的應用程序信息。基本上,我訪問Facebook應用程序並可能自動安裝它。機械化和Facebook應用程序

我想看看,如果我通過下面的代碼獲得權限對話框頁面,但它不返回許可頁,而第一頁。

什麼的Facebook要做的就是多重定向或間或發出一些其他的請求,然後登陸用戶許可網頁,我需要點擊允許按鈕。但我無法獲得許多應用程序的最終許可頁面。這裏的代碼,

use strict; 
use WWW::Mechanize; 
use HTTP::Cookies; 

my $url = "http://www.facebook.com"; 

my $appurl = "http://apps.facebook.com/funmoods/"; 

my $username = 'mail'; 
my $password = 'pass'; 

my $mech = WWW::Mechanize->new(); 
$mech->cookie_jar(HTTP::Cookies->new()); 
$mech->get($url); 
$mech->form_name('menubar_login'); 
$mech->field(email => $username); 
$mech->field(pass => $password); 
$mech->click(); 
my $facebook_content = $mech->content(); 
# go to an app url 
$mech->get($appurl); 
my $app_content = $mech->content(); 
print "$app_content\n"; 

我不知道爲什麼機械化不訪問最終加載的頁面。加載權限頁面需要一些時間,但機械化始終返回第一個源頁面。我怎麼能告訴機械等待,直到它加載所有頁面?

需要幫助的感謝

回答

0

我認爲你應該使用progress子從LWP :: UserAgent的

$ua->progress($status, $request_or_response) 

繼承了文檔:

這通常稱爲的 響應無論 內容是如何處理的,都會收到。該方法 被調用$狀態「開始」,在 開始請求 方法返回之前處理的請求,並與 $狀態「結束」。在這些 $狀態之間會目前收到的 響應的分數,或者如果分數不能 計算 字符串「滴答」。

當$ status是「開始」時,第二個參數 是請求對象, 否則它是響應對象。