Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Mechanize (Python) to fill form

I want to fill the form on this page using python mechanize and then record the response. How should I do it? When I search for forms on this page using the following code, it shows the form only for the search. How should I locate the form name of the other form with fields such as name, gender etc?

http://aapmaharashtra.org/join-us

Code:

import mechanize
br=mechanize.Browser()
br.open("http://aapmaharashtra.org/join-us")
for form in br.forms():
    print "Form name:", form.name
    print form
like image 799
user2684957 Avatar asked Mar 10 '14 07:03

user2684957


1 Answers

The form you need (with an id="form1") is loaded dynamically on the fly - this is why you don't see it in the select_forms() results.

By using browser developer tools you may find out that the form is loaded from http://internal.aamaadmiparty.org/Directory/Format.aspx?master=blank link.

Here's what you should start with then:

import mechanize


br = mechanize.Browser()
br.open("http://internal.aamaadmiparty.org/Directory/Format.aspx?master=blank")
br.select_form(nr=0)

br.form['ctl00$MainContent$txtname'] = 'Test Name'
# fill out other fields

req = br.submit()

Hope that helps.

like image 160
alecxe Avatar answered Sep 22 '22 12:09

alecxe