ClientForm -- HTML form handling
John J. Lee
jjl@pobox.com
Sun, 22 Sep 2002 20:19:42 +0100
http://wwwsearch.sourceforge.net/ClientForm
ClientForm 0.0.2a
WARNING: this is an alpha release. The API may change, and don't
expect everything to work properly!
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 is a port (more-or-less) of Gisle
Aas' Perl module HTML::Form, from the libwww-perl library.
import ClientForm
import urllib2
request = urllib2.Request("http://www.acme.com/form.html")
response = urllib2.urlopen(request)
forms = ClientForm.ParseResponse(response)
form = forms[0]
form["author"] = "Gisle Aas"
request2 = form.click("Thanks")
response2 = urllib2.urlopen(request2)
print result2.geturl()
print result2.info() # headers
for line in result2.readlines(): # body
print line
All of the standard input types are supported: TEXT, PASSWORD, FILE,
HIDDEN, BUTTON, RESET, IMAGE, SUBMIT, CHECKBOX, SELECT/OPTION and
RADIO. TEXTAREA and FILE (for file upload) are not yet supported, but
will be in a future version.
Python 2.0 or above is required. I will backport to 1.5.2 later. To
run the tests, you need the unittest module (from PyUnit).
John