使用Perl和Mechanize登录网站
发布时间:2020-12-15 21:51:29 所属栏目:大数据 来源:网络整理
导读:所以这让我发疯了.基本上,当我硬编码我的用户名和密码时,我可以登录没问题.但我想提示用户输入用户名和密码,因为我想与他人分享这个程序. (该程序应该登录我们的课程网站并下载我们的所有课程工作信息 – 讲座,hw等) 此代码有效: use WWW::Mechanize;use LW
所以这让我发疯了.基本上,当我硬编码我的用户名和密码时,我可以登录没问题.但我想提示用户输入用户名和密码,因为我想与他人分享这个程序. (该程序应该登录我们的课程网站并下载我们的所有课程工作信息 – 讲座,hw等)
此代码有效: 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(); 这真的没有意义,因为它们基本上是一回事.我甚至在提示中输入了用户名/密码的引号,但仍然无济于事…..(我也意识到,如果没有网站和登录信息,它将很容易检查,对不起) 解决方法
您需要在用户输入上运行
chomp() :
my $username = <>; chomp($username); 用户提供的文本末尾有回车符,这会搞砸您的登录信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |