http://wwwsearch.sourceforge.net/ClientForm/
Changes from 0.1.10 to 0.1.15:
The following bugs were fixed in both 0.1.x and 0.0.x:
* TEXTAREA contents are no longer .strip()ped on form parsing. * Fixed bugs where TEXTAREA or OPTION containing entity reference would result in truncated element contents. * A few doc fixes in HTMLForm.__doc__. * Fixed ImageControl.pairs(): return value contained integer coordinates instead of strings. * Empty OPTION no longer causes KeyError. * ClientForm.urlencode() works with Unicode. * Minor code clean-up.
The following bugs were fixed only in 0.1.x :
* All form attributes are now available in HTMLForm.attrs (previously, name, action, method and enctype were not present). * ignore_errors is now ignored: not working, and a bad idea in the first place. * Take note of BASE element.
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
python-announce-list@python.org