python使用javascript提交通过POST发送数据

python send data through POST with javascript submit

本文关键字:POST 数据 使用 javascript 提交 python      更新时间:2023-11-27

我从python脚本提交表单的问题。。这是FORM

<form id="userLogin" autocomplete="OFF" action="LoginPage.aspx" method="post" name="userLogin"
<input type="text" class="txt" id="Userid" name="Userid" maxlength="12">
<input type="password" class="txtpwdbox" id="Password" name="Password" readonly="" maxlength="10">
<img style="CURSOR:pointer" onclick="userIdValidation();" src="/ENG/images/but-login-en.gif" id="idSubmit">

从上面的代码中,我们可以注意到最后一行是关于提交的,但如何在python中完成?

这是我的python代码

import urllib,urllib2,cookielib
login_data = urllib.urlencode({'Userid':'test','Password':'123456'})
cj = cookielib.CookieJar()
op = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
c = op = urllib2.urlopen('https://www.example.com/Login/LoginPage.aspx', login_data)
print c.read()

但它没有提交。。如果你在userIdValidation()函数中徘徊,基本上是检查用户是否填写了用户名和密码字段,然后执行命令document.userLogin.submit();

也许你可以尝试机械化(PyPI页面)。不确定它是否处理Javascript,但它在页面之间导航和提交表单方面帮了我很多忙。此外,您还可以取消cookie管理。

我猜您是从.net框架实现站点获取该页面的。(此处为"LoginPage.aspx")

有很多网站的.net框架都启用了PageView属性,这是维护页面状态的方法之一,但它会附加一些数据请求启动

所以,如果你想发布一个请求,不要忘记PageView或其他.net框架数据。

您可以在上面尝试但当你通过建立一个开启器"操作"时

op=urlib2.build_opener(urlib2.HTTPCookieProcessor(cj))

为什么使用

urllib2.ullopen('https://www.example.com/Login/LoginPage.aspx',login_data)

这无法通过cookie