http://wwwsearch.sourceforge.net/ClientForm/

Changes from 0.1.9 to 0.1.10:
* XHTML support (only for Pythons >= 2.2). Thanks to Michael Howitz.
* A minor bugfix.


Requires Python >= 1.5.2.

ClientForm is a Python module for handling HTML forms on the client
side, useful for parsing HTML forms, filling them in and returning the
completed forms to the server. It has developed from a port of Gisle
Aas' Perl module HTML::Form, from the libwww-perl library, but the
interface is not the same.

Simple example:

from urllib2 import urlopen
from ClientForm import ParseResponse

forms = ParseResponse(urlopen("http://www.example.com/form.html"))
form = forms[0]
print form
form["author"] = "Gisle Aas"

# form.click returns a urllib2.Request object
# (see HTMLForm.click_request_data.__doc__ if you're not using urllib2)
response = urlopen(form.click("Thanks"))


John