This functionality provided by this module is now part of mechanize. I don't intend to make further standalone releases of ClientCookie.
Please read this note explaining the
relationship between ClientCookie,
urllib2, and which to use when.
ClientCookie is a Python module for
handling HTTP cookies on the client side, useful for accessing web sites that
require cookies to be set and then returned later. It also provides some other
(optional) useful stuff:
handling, automatic adding of the
Referer [sic] header, automatic
robots.txt and lazily-
responses. These extras are implemented using an extension that makes it
easier to add new functionality to
urllib2. It has developed from
a port of Gisle Aas' Perl module
HTTP::Cookies, from the libwww-perl library.
import ClientCookie response = ClientCookie.urlopen("http://foo.bar.com/")
This function behaves identically to
that it deals with cookies automatically. That's probably all you need to
Python 2.0 or above is required, and
urllib2 is recommended.
If you have 2.1 or above, you've already got a recent enough version of
urllib2. For Python 2.0, you need the newer versions from Python
2.1 (available from the source distribution or Python CVS: urllib2.py).
Note that you don't need to replace the original
urllib - you can just make sure they're in
ahead of the copies from 2.0's standard library.
For full documentation, see here and the docstrings in the module source code.
Even if you're not using Python 2.4, please note the last of these points.
cookieliband extensions to module
cookielibinstead of ClientCookie. I recommend turning on RFC 2965 support to work around a bug in
cookielibin Python 2.4.0.
HTTPRefreshProcessor) may be used with 2.4's
urllib2(however, note the paragraph below). With any version of Python, parts of
urllib2that are missing from ClientCookie (eg.
ProxyHandler) may be used with ClientCookie, and
urllib2.Requestobjects may be used with ClientCookie. IMPORTANT: For all other code, use ClientCookie exclusively: do NOT mix use of ClientCookie and
All documentation (including these web pages) is included in the distribution.
To port your code from 0.4.x to 1.0.x, see here.
For installation instructions, see the INSTALL file included in the distribution.
The Subversion (SVN) trunk is http://codespeak.net/svn/wwwsearch/ClientCookie/trunk, so to check out the source:
svn co http://codespeak.net/svn/wwwsearch/ClientCookie/trunk ClientCookie
Cookie, do this?
No: Cookie.py does the server end of the job. It doesn't know when to accept cookies from a server or when to pass them back.
2.0 or above.
No. You probably want it, though.
You don't, but if you want to use the extended
callables from ClientCookie, and you have Python 2.0, you need to
upgrade to the version from Python 2.1. Otherwise, you're OK.
There is more than one protocol, in fact (see the docs for a brief explanation of the history):
Netscape and RFC 2965. RFC 2965 handling is switched off by default.
RFC 2109 cookies are currently parsed as Netscape cookies, and treated
by default as RFC 2965 cookies thereafter if RFC 2965 handling is enabled,
or as Netscape cookies otherwise. RFC 2109 is officially obsoleted by RFC
2965. Browsers do use a few RFC 2109 features in their Netscape cookie
ClientCookie knows about that, too.
I prefer questions and comments to be sent to the mailing list rather than direct to me.
John J. Lee, May 2006.