2012-01-19 25 views
3

私はシーケンスの次のページに移動するために私がクリックする必要があるページ上にボタンがあり、これがどのようにPythonで可能か疑問に思っていました。ボタンは、HTTPのPOSTリクエストとJavascriptのミックスのようです、ここでボタンのコードです:Python - JavaScriptボタンをクリック

<FORM name="ff" action="nq2.phtml" method="post"> 
    <INPUT type="hidden" name="target" value="-1"> 
    <INPUT type="hidden" name="fact" value=""> 
    <INPUT type="hidden" name="parm" value=""> 
    <INPUT type="hidden" name="use_id" value="-1"> 
    <INPUT type="hidden" name="nxactor" value="1"> 
    <TD align="center" valign="top"> 
    <DIV class="pr"> 
    <A href="javascript:;" onClick="settarget(5); setch(ch5); return false;"> 

私は正直にこのような何かにアプローチする方法が分からないと、誰もがに関するいくつかの洞察力を持っていた場合には思っていましたどのように私はそれをやって行くだろう。

+0

がsetTarget()関数は何をするん:これを行う方法の1つは、リクエストを送信するために辞書やurllib2.urlopenからフォームデータをエンコードするためにurllib.urlencodeを使用しているのですか?とにかくあなたはPythonでそれをすることはできませんが、JavaScriptが必要です(遅延が必要な場合はsetTimeout()を使用します)。 –

+0

@FabioBudaどうやらあなたができる! ;) – HarryCBurn

+0

このボタンのコードはどうやって取得できましたか? Wireshark? –

答えて

5

フォームの送信をシミュレートするには、送信ボタンがクリックされるとブラウザがサイトに送信する同じPOSTリクエストを送信できます。

import urllib, urllib2 
form_data = urllib.urlencode({'target': <value>, 'fact': <value>, ...}) 
urllib2.urlopen("np2.phtml", form_data) 
関連する問題