所以这让我疯狂。基本上,当我硬编码我的用户名和密码时,我可以登录没有问题。但我想提示用户输入用户名和密码,因为我想与其他人分享这个程序。 (程序应该登录到我们的课程网站,并下载所有我们的课程作业信息的 - 讲座,汉王等)网站用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