+ -
当前位置:首页 → 问答吧 → 在perl中通过WWW::Mechanize登录不了网站

在perl中通过WWW::Mechanize登录不了网站

时间:2011-11-15

来源:互联网

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

测试代码:
Perl code

#!/usr/bin/perl
use 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 的值为空.

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

作者: jnvcf   发布时间: 2011-11-15

仔细看清楚content。有些时候页面的内容里是有这些错误信息,但是由js控制的,不会真正显示给用户。所以你要先分辨清楚。

作者: iambic   发布时间: 2011-11-15

做登录脚本的时候,最好先观察一下,正常登录的流程.请求的方式了,传送的参数,以及头部信息等等.

作者: userguanguan   发布时间: 2011-11-15

热门下载

更多