我正在尝试使用python登录网站,但没有取得多大成功。每当我发布我的凭据时,我得到200响应,但我被重定向到登录屏幕。我认为这是因为该网站的登录使用的是javascript,它不仅需要post命令中的用户名和密码,而且我还不确定如何解析它以修复我的登录代码。
这是我的python代码:
s = requests.session()
login_url = "example.com"
result = s.get(login_url)
payload = {
"user_login": "xx",
"user_pass": "xx"
}
print(payload)
postresult = s.post(
login_url,
data = payload,
allow_redirects=True
)
这是输入表单的样子:
<div id="loginForm">
<ul>
<li>
<label>Email:</label>
<input class="txt" type="email" name="user_login" tabindex="1" value="">
</li>
<li>
<label>Password:</label>
<input class="txt" type="password" name="user_pass" tabindex="2">
</li>
<li class="submit">
<a id="a-fgt" class="sub" href="#" tabindex="4">Forgot Password</a>
<input type="submit" id="logSubmit" value="Login" tabindex="3" />
<div id="rightBlock">
<span id="respMsg"></span>
</div>
</li>
</ul>
</div>
以下是javascript代码的执行部分:
function init_login(){
var form = document.forms.loginForm;
$submit(form,login_request);
$listen($('a-fgt'),'click',function(){buildForgotPassword(false);},false);
var lgn = getCookie('login');
if(lgn){form.user_login.value = lgn;}
form[wordCount(form.user_login.value)?'user_pass':'user_login'].focus();
formVal = new FormValidator(form);
}
/*---\\\ LOGIN FUNCTIONS ///---*/
function login_request(form){
form = validateForm(form, 'user_pass');
$post("/JSMX/admin_login.cfc?method=login",login_response,form);
}