2012-07-19 37 views
0

我的问题与python脚本提交表单..这里是FORM蟒蛇通过POST发送数据使用javascript提交

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

+0

答案就在这里: http://stackoverflow.com/questions/13703772/sending-form-data-to-aspx-page – Harry 2012-12-12 14:10:44

回答

0

也许你可以试试mechanizePyPI page)。不确定它是否处理Javascript,但是它在页面之间导航和提交表单方面帮助了我很多。此外,你会摆脱cookie管理。

0

我猜你是从.NET Framework实现网站抓取的页面。(“LoginPage.aspx”在这里)

有.NET框架的很多网站都使网页浏览性能,它的维持一个页面的状态方法,但它会附加一些数据请求发起

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

+0

我不明白这一点,可以你能解释更多吗? – Hamoudaq 2012-07-19 16:02:35

0

你可以试试上面 但是当你通过

OP = urllib2.build_opener为什么你使用

(urllib2.HTTPCookieProcessor(CJ))

建立一个开门红 “OP”

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

这不能通过该cookie