Python: нажатие кнопки с urllib или urllib2

Я хочу нажать кнопку с python, информация для формы автоматически заполняется веб-страницей. HTML код для отправки запроса на кнопки:

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

Как бы я это сделал? Можно ли нажать кнопку только с помощью urllib или urllib2? Или мне нужно будет использовать что-то вроде механизации или саржи?

3 ответов


используйте цель формы и отправляйте любые входные данные в качестве данных post следующим образом:

<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 любые данные post с:

urllib.функция urlencode(запрос)


возможно, вы захотите взглянуть на IronWatin -https://github.com/rtyler/IronWatin чтобы заполнить форму и "нажать" кнопку с помощью кода.


с помощью urllib.urlopen, вы можете отправить значения формы в качестве параметра данных на страницу, указанную в теге формы. Но это не автоматизирует Ваш браузер для вас, поэтому вам придется сначала получить значения формы каким-то другим способом.