Pythonでボタンをクリックしたいのですが、フォームの情報はWebページによって自動的に入力されます。ボタンにリクエストを送信するためのHTMLコードは次のとおりです。
INPUT type="submit" value="Place a Bid">
どうすればこれを行うことができますか? urllibまたはurllib2だけでボタンをクリックすることは可能ですか?それとも、機械化やツイルのようなものを使用する必要がありますか?
フォームターゲットを使用して、次のような投稿データとして入力を送信します。
<form target="http://mysite.com/blah.php" method="GET">
......
......
......
<input type="text" name="in1" value="abc">
<INPUT type="submit" value="Place a Bid">
</form>
Python:
# parse the page HTML with the form to get the form target and any input names and values... (except for a submit and reset button)
# You can use XML.dom.minidom or htmlparser
# form_target gets parsed into "http://mysite.com/blah.php"
# input1_name gets parsed into "in1"
# input1_value gets parsed into "abc"
form_url = form_target + "?" + input1_name + "=" + input1_value
# form_url value is "http://mysite.com/blah.php?in1=abc"
# Then open the new URL which is the same as clicking the submit button
s = urllib2.urlopen(form_url)
次のようにHTMLを解析できます HTMLParser
また、投稿データを次のようにurlencodeすることを忘れないでください。
IronWatin -- https://github.com/rtyler/IronWatin を確認してフォームに入力し、コードを使用してボタンを「クリック」することをお勧めします。
Urllib.urlopenを使用すると、フォームの値をデータパラメータとして、フォームタグで指定されたページに送信できます。ただし、これではブラウザが自動化されないため、最初に別の方法でフォームの値を取得する必要があります。