[英]How do I use Perl's LWP to log in to a web application?
我想編寫一個腳本來登錄Web應用程序,然后轉移到應用程序的其他部分:
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use Data::Dumper;
$ua = LWP::UserAgent->new(keep_alive=>1);
my $req = POST "http://example.com:5002/index.php",
[ user_name => 'username',
user_password => "password",
module => 'Users',
action => 'Authenticate',
return_module => 'Users',
return_action => 'Login',
];
my $res = $ua->request($req);
print Dumper(\$res);
if ( $res->is_success ) {
print $res->as_string;
}
當我嘗試這段代碼時,我無法登錄該應用程序。 返回的HTTP狀態代碼是302,但沒有數據。
如果我發布所有必需的用戶名/密碼,那么它應該返回應用程序的主頁並保持連接實時移動應用程序的其他部分。
您可以為此目的使用WWW :: Mechanize :
Mech支持執行一系列頁面提取,包括以下鏈接和提交表單。 解析每個獲取的頁面並提取其鏈接和表單。 可以選擇鏈接或表單,填寫表單字段並可以獲取下一頁。 Mech還會存儲您訪問過的URL的歷史記錄,可以查詢和重新訪問這些URL。
我已經使用LWP登錄到大量網站並對內容進行處理,所以做你想做的事情應該沒問題。 到目前為止,您的代碼看起來不錯,但我建議兩件事:
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.