- 論壇徽章:
- 0
|
本帖最后由 stdtd 于 2011-11-16 16:24 編輯
不知哪里沒(méi)設(shè)置好, 也換了好多個(gè)agent,但這個(gè)小腳本老是登錄不了,,
- #!/usr/bin/perl
- use strict;
- use WWW::Mechanize;
- use Encode;
- my $url = "http://passport.115.com/?ac=login&tpl=pc";
- 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';
- my $mech = WWW::Mechanize->new( cookie_jar => {} );
- $mech->add_header( 'User-agent' => $http_user_agent);
- $mech->get($url);
- $mech->submit_form(
- form_id => 'loginForm',
- fields => {
- 'login%5Baccount%5D' => 'okabc123',
- 'login%5Bpasswd%5D' => 'abc123ha',
- 'goto' => 'http://115.com'
- },
- );
- print "content: \n".encode("utf-8",$mech->content)."\n\n";
- print "isSuccess: ".$mech->success."\n";
復(fù)制代碼 $mech->success 的返回結(jié)果是1,但$mech->content 中有“密碼輸入錯(cuò)誤”這樣的提示:- <p style="color: red; font-weight: bold;" id="loginError">密碼輸入錯(cuò)誤!</p>
復(fù)制代碼 可那用戶名和密碼肯定是正確的啊,按正常方式打開(kāi)瀏覽器能成功登錄。
下面是登錄頁(yè)面的form:
- <form rel="right" action="?ac=login&tpl=pc&app=u" id="loginForm" method="post">
- <input type="hidden" value="http://115.com" name="goto">
- <div class="mt20 pr">
- <label for="username" class="text-label gray pa" style="display: none;">您的郵箱</label>
- <input type="text" data-error="郵箱不能為空!" id="username" name="login[account]" class="text required">
- <!--<div class="fill-tip pa">
- <span><b class="sign-bak ib"></b><label class="fl">用戶名不能為空!</label></span>
- </div>-->
- </div>
- <div class="mt20 pr">
- <label for="password" class="text-label gray pa" style="display: none;">輸入密碼</label>
- <input type="password" data-error="密碼不能為空!" id="password" name="login[passwd]" class="text required">
- </div>
- <div class="mt20 clearfix checkbox-parent">
- <span class="fl">
- <input type="checkbox" name="login[time]" id="autoLogin"><label for="autoLogin">自動(dòng)登錄</label>
- </span>
- </div>
- <div class="mt20">
- <input type="submit" value="登錄" class="btn sign-bak login"> <a class="ml10" target="_blank" href="/?ct=forgot_passwd">忘記密碼?</a>
- </div>
- </form>
復(fù)制代碼 在正常的登錄流程中,瀏覽器向服務(wù)器提交的信息如下:
- Host = passport.115.com
- User-Agent = Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
- Accept = text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- Accept-Language = en-us,en;q=0.5
- Accept-Encoding = gzip, deflate
- Accept-Charset = ISO-8859-1,utf-8;q=0.7,*;q=0.7
- Connection = keep-alive
- Referer = http://passport.115.com/?ac=login&tpl=pc
- Content-Type = application/x-www-form-urlencoded
- Content-Length = 80
- POSTDATA = goto=http%3A%2F%2F115.com&login%5Baccount%5D=okabc123&login%5Bpasswd%5D=abc123ha
復(fù)制代碼 按網(wǎng)上的方法測(cè)試了好久都沒(méi)登錄成功
請(qǐng)高手們指點(diǎn)指點(diǎn)啊,
謝謝! |
|