我正在使用mechanize以下列表单登录网站。
<form id="loginForm">
<div class="signinTitle" >
<span class="regTips" id="logTips"></span>
</div>
<ul class="inputBox">
<li class="loginname">
<label>username/email</label>
<input id="nameInput" type="text" name="loginname" maxlength="30" value="">
</li>
<li class="password">
<label>password</label>
<input id="pwdInput" type="password" name="password" maxlength="16" value="">
</li>
<li id="chechbox">
<p class="tip">
<input name="remember" type="checkbox" checked="checked"/>
<span>remember </span>
<span class="forgetPwd"><a href="http://passport.infzm.com/passport/resetPassWord" >forget password</a></span>
</p>
</li>
<li class="submit clearfix">
<input type="submit" id="submitbutton" title="submit" value="login"></input>
</li>
</ul>
</form>
我用来登录的代码如下
browser = mechanize.Browser()
browser.open(url)
browser.select_form(nr=1)
browser['loginname']=username
browser['password']=password
browser.submit()
browser.read()
但是read()返回与登录页面相同的html。这里有什么不对。
答案 0 :(得分:1)
images.infzm.com/js/com/infzm/passport/passport.js?v=4上的javascript显示该表单是通过POST提交给/passport/login
的。你需要做一些机械化的技巧才能让它发挥作用。基本上,您需要找出一种方法来改变表单的动作和方法(我不记得是可能的),或者在不使用表单的情况下自己制作帖子(更容易做到)。然后,只需直接浏览http://www.infzm.com/,因为这是登录成功时javascript重定向到的内容。