10

Pythonでボタンをクリックしたいのですが、フォームの情報はWebページによって自動的に入力されます。ボタンにリクエストを送信するためのHTMLコードは次のとおりです。

INPUT type="submit" value="Place a Bid">

どうすればこれを行うことができますか?urllibまたはurllib2だけでボタンをクリックすることは可能ですか?それとも、機械化やツイルのようなものを使用する必要がありますか?

4

3 に答える 3

11

フォームターゲットを使用して、次のような投稿データとして入力を送信します。

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

HTMLParserを使用してHTMLを解析できます

また、投稿データを次のようにurlencodeすることを忘れないでください。

urllib.urlencode(query)

于 2011-10-03T03:42:47.810 に答える
2

IronWatin(https://github.com/rtyler/IronWatin)を参照してフォームに入力し、コードを使用してボタンを「クリック」することをお勧めします。

于 2011-10-03T03:42:21.460 に答える
1

urllib.urlopenを使用すると、フォームの値をデータパラメータとして、フォームタグで指定されたページに送信できます。ただし、これではブラウザが自動化されないため、最初に別の方法でフォームの値を取得する必要があります。

于 2011-10-03T03:34:56.347 に答える