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:
HTTP-EQUIV
and Refresh
handling, automatic
adding of the Referer
[sic] header and
lazily-seek()
able 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 urllib2.urlopen
,
except that it deals with cookies automatically. That's probably all
you need to know.
Python 1.5.2 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 1.5.2, use this
urllib2
and this
urllib
. For Python 2.0, you need the newer versions from
Python 2.1 (available from the source distribution or CVS from http://www.python.org/), or use the
1.5.2-compatible versions. Note that you don't need to replace the original
urllib2
/ urllib
- you can just make sure they're in
sys.path
ahead of the copies from 2.0's standard library.
For full documentation, see here and the docstrings in the module source code.
All documentation (including these web pages) is included in the distribution.
Stable release.
Old release. I'm not going to be maintaining 0.3.x any more. 0.4.x includes interface changes, but it isn't hard to switch. To port from 0.3.x to 0.4.x, see this list.
For installation instructions, see the INSTALL file included in the distribution.
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.
1.5.2 or above.
No. You probably want it, though.
You don't, but if you want to use the extended urllib2
callables from ClientCookie, and you have Python 2.0, you need to
upgrade to the version from Python 2.1 (or use the 1.5.2-compatible
version). If you have Python 1.5.2, use this
urllib2
and
urllib
. Otherwise, you're OK.
The BSD license (included in distribution).
There is more than one protocol, in fact (see the docs for a brief explanation of the history):
Netscape and RFC 2965.
RFC 2109 cookies are currently parsed as Netscape cookies, and treated
as RFC 2965 cookies thereafter. RFC 2109 is officially obsoleted by RFC
2965. Browsers do use a few RFC 2109 features in their Netscape cookie
implementations (port
and max-age
), and
ClientCookie knows about that, too.
John J. Lee, November 2003.