Механизм Python — отправить ответ формы

У меня есть этот код:

import mechanize
def register():
            br = mechanize.Browser()
            br.set_handle_robots(False)
            br.open("http://somtehing.com/form2/index.php")
            br.select_form(nr=0)
            br.form["email"] = "[email protected]"
            br.form["name"] = "Jan"
            br.form["nickname"] = "Vrsrly"
            br.form["postnum"] = "41182"
            br.form["age"] = "52"
            br.form["sex"] = ["man"]
            br.form["tel"] = "+420723545054"
            br.find_control("rules").items[0].selected = True
            res = br.submit()
            content = res.read()
            with open("mechanize_results.html", "w") as f:
                f.write(content)

но когда я смотрю на веб-сайте mechanize_results.html, это просто заполненная форма, флажок установлен, но я не знаю, был ли он отправлен. Когда я делал это вручную, меня перенаправляло на страницу, где было написано «Зарегистрировано успешно». И я не получаю этот ответ с механизацией. Любые идеи, как это решить?


person Yerdno    schedule 19.04.2015    source источник
comment
связанные   -  person bummi    schedule 03.04.2016


Ответы (1)


Я только что решил аналогичную проблему с тем, что form.submit, похоже, не имеет никакого эффекта.

datat = {'username': 'lnIqd6Et','password':'4BafqzIm8sLgWxdvw9Cb'}
#Encode the parameters
data = urllib.urlencode(datat)
#Submit the form (POST request).
print "POST"
browser.open(post_url,data)
print "POSTED"
print browser.open(url_to_get).read()
person Hamza Hmidi    schedule 03.04.2016