2012-07-19 82 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