所以這讓我瘋狂。基本上,當我硬編碼我的用戶名和密碼時,我可以登錄沒有問題。但我想提示用戶輸入用戶名和密碼,因爲我想與其他人分享這個程序。 (程序應該登錄到我們的課程網站,並下載所有我們的課程作業信息的 - 講座,漢王等)網站用Perl和Mechanize登錄
此代碼:
use WWW::Mechanize;
use LWP;
my $username = 'user';
my $password = 'pass';
my $mech = WWW::Mechanize->new();
$mech -> cookie_jar(HTTP::Cookies->new());
$mech -> get('log-in url');
$mech -> form_name('theform');
$mech -> field ('username' => $username);
$mech -> field ('password' => $password);
$mech -> click ('log in');
print $mech-> content();
然而,當我嘗試並提示用戶輸入登錄信息,它現在可以工作。打印內容返回登錄頁面(說的課程頁面的用戶)的HTML,而不是下頁
use LWP;
use WWW::Mechanize;
my $login_url = 'log-in url';
print "\nUser name: ";
my $username = <>;
print "Password: ";
my $password = <>;
my $mech = WWW::Mechanize->new();
$mech -> cookie_jar(HTTP::Cookies->new());
$mech -> get($login_url);
$mech -> form_name('theform');
$mech -> field ('username' => $username);
$mech -> field ('password' => $password);
$mech -> click ('log in');
print $mech-> content();
這真的是沒有意義的,因爲它們在本質上是一樣的。我甚至在提示中鍵入用戶名/密碼在引號中仍然沒有用.....(我也意識到它不會很容易檢查沒有網站和登錄信息,對此感到抱歉)
您不需要在代碼中使用LWP和$ mech - > cookie_jar(HTTP :: Cookies-> new());'機械化將自動使用cookie。 – gangabass 2011-05-21 01:01:40