1

我从 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();

4

3 回答 3

0

也许您可以尝试机械化PyPI 页面)。不确定它是否处理 Javascript,但它对我在页面之间导航和提交表单有很大帮助。此外,您将摆脱 cookie 管理。

于 2012-07-19T01:04:51.083 回答
0

您可以在上面尝试,但是当您通过以下方式构建开瓶器“操作”时

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

你为什么使用

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

这不能通过 cookie

于 2012-07-19T03:03:04.023 回答
0

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

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

因此,如果您想发布请求,请不要忘记 PageView 或其他 .net 框架数据。

于 2012-07-19T02:53:09.663 回答