免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3184 | 回复: 1
打印 上一主题 下一主题

WWW::Mechanize登录脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-16 16:17 |只看该作者 |倒序浏览
本帖最后由 stdtd 于 2011-11-16 16:24 编辑

不知哪里没设置好, 也换了好多个agent,但这个小脚本老是登录不了,,

  1. #!/usr/bin/perl
  2. use strict;
  3. use WWW::Mechanize;
  4. use Encode;

  5. my $url = "http://passport.115.com/?ac=login&tpl=pc";
  6. my $http_user_agent = 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Mobile/7B405';
  7. my $mech = WWW::Mechanize->new( cookie_jar => {} );
  8. $mech->add_header( 'User-agent' => $http_user_agent);
  9. $mech->get($url);
  10. $mech->submit_form(
  11.         form_id => 'loginForm',
  12.         fields    => {
  13.                 'login%5Baccount%5D' => 'okabc123',
  14.                 'login%5Bpasswd%5D' => 'abc123ha',
  15.                 'goto' => 'http://115.com'
  16.                 },
  17. );

  18. print "content: \n".encode("utf-8",$mech->content)."\n\n";
  19. print "isSuccess: ".$mech->success."\n";
复制代码
$mech->success 的返回结果是1,但$mech->content 中有“密码输入错误”这样的提示:
  1. <p style="color: red; font-weight: bold;" id="loginError">密码输入错误!</p>
复制代码
可那用户名和密码肯定是正确的啊,按正常方式打开浏览器能成功登录。

下面是登录页面的form:

  1. <form rel="right" action="?ac=login&amp;tpl=pc&amp;app=u" id="loginForm" method="post">
  2.     <input type="hidden" value="http://115.com" name="goto">
  3.     <div class="mt20 pr">
  4.         <label for="username" class="text-label gray pa" style="display: none;">您的邮箱</label>
  5.         <input type="text" data-error="邮箱不能为空!" id="username" name="login[account]" class="text required">
  6.         <!--<div class="fill-tip pa">
  7.             <span><b class="sign-bak ib"></b><label class="fl">用户名不能为空!</label></span>
  8.         </div>-->
  9.     </div>
  10.     <div class="mt20 pr">
  11.         <label for="password" class="text-label gray pa" style="display: none;">输入密码</label>
  12.         <input type="password" data-error="密码不能为空!" id="password" name="login[passwd]" class="text required">
  13.     </div>
  14.     <div class="mt20 clearfix checkbox-parent">
  15.         <span class="fl">
  16.             <input type="checkbox" name="login[time]" id="autoLogin"><label for="autoLogin">自动登录</label>
  17.         </span>
  18.     </div>
  19.     <div class="mt20">
  20.         <input type="submit" value="登录" class="btn  sign-bak login"> <a class="ml10" target="_blank" href="/?ct=forgot_passwd">忘记密码?</a>
  21.     </div>
  22. </form>
复制代码
在正常的登录流程中,浏览器向服务器提交的信息如下:

  1. Host = passport.115.com
  2. User-Agent = Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
  3. Accept = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  4. Accept-Language = en-us,en;q=0.5
  5. Accept-Encoding = gzip, deflate
  6. Accept-Charset = ISO-8859-1,utf-8;q=0.7,*;q=0.7
  7. Connection = keep-alive
  8. Referer = http://passport.115.com/?ac=login&tpl=pc
  9. Content-Type = application/x-www-form-urlencoded
  10. Content-Length = 80
  11. POSTDATA = goto=http%3A%2F%2F115.com&login%5Baccount%5D=okabc123&login%5Bpasswd%5D=abc123ha
复制代码
按网上的方法测试了好久都没登录成功  
请高手们指点指点啊,
谢谢!!

论坛徽章:
0
2 [报告]
发表于 2011-11-16 20:13 |只看该作者
'login[account]' => 'okabc123',
                'login[passwd]' => 'abc123ha',
就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP