Stateful programmatic web browsing, after Andy Lester's Perl module WWW::Mechanize. The library is layered: mechanize.Browser (stateful web browser), mechanize.UserAgent (configurable URL opener), plus urllib2 handlers. Features include: ftp:, http: and file: URL schemes, browser history, high-level hyperlink and HTML form support, HTTP cookies, HTTP-EQUIV and Refresh, Referer [sic] header, robots.txt, redirections, proxies, and Basic and Digest HTTP authentication. mechanize's response objects are (lazily-) .seek()able and still work after .close().