首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

在perl中通过WWW:Mechanize登录不了网站,该怎么解决

2012-03-23 
在perl中通过WWW::Mechanize登录不了网站试了好久,也换了好多个参数了,但总登录不了...$mech-success 的

在perl中通过WWW::Mechanize登录不了网站
试了好久,也换了好多个参数了,但总登录不了...
$mech->success 的返回结果是1,但$mech->content 中总是有“密码输入错误”这样的提示。可那用户名和密码肯定是正确的啊,打开浏览器能正常登录。

测试代码:

Perl code
#!/usr/bin/perluse strict;use WWW::Mechanize;my $loginUrl = 'http://passport.115.com/?ac=login&tpl=pc';my $mech = WWW::Mechanize->new();$mech->agent_alias('Windows IE 6');$mech->get($loginUrl);$mech->submit_form(    form_id => 'loginForm',    fields => {        'login%5Baccount%5D' => 'okabc123',        'login%5Bpasswd%5D' => 'abc123ha',        'goto' => 'http://115.com',    },);print "isSuccess: ".$mech->success."\n".$mech->content."\n\n";


agent换成下面这样的也同样不行:
Perl code
use constant UA => 'Opera/9.80 (X11; Linux i686; U; en) Presto/2.6.30 Version/10.60';my $mech=WWW::Mechanize->new(agent=>UA);


把“login%5Baccount%5D”写成“login[account]”的情况下,$mech->success 的值为空.

请高手们指点指点啊,
谢谢!!


[解决办法]
仔细看清楚content。有些时候页面的内容里是有这些错误信息,但是由js控制的,不会真正显示给用户。所以你要先分辨清楚。
[解决办法]
做登录脚本的时候,最好先观察一下,正常登录的流程.请求的方式了,传送的参数,以及头部信息等等.

热点排行