New in version 2.4.
The cookielib module defines classes for automatic handling
of HTTP cookies. It is useful for accessing web sites that require
small pieces of data - cookies - to be set on the client
machine by an HTTP response from a web server, and then returned to
the server in later HTTP requests.
Both the regular Netscape cookie protocol and the protocol defined by
RFC 2965 are handled. RFC 2965 handling is switched off by default.
RFC 2109 cookies are parsed as Netscape cookies and subsequently
treated either as Netscape or RFC 2965 cookies according to the
'policy' in effect. Note that the great majority of cookies on the
Internet are Netscape cookies. cookielib attempts to follow
the de-facto Netscape cookie protocol (which differs substantially
from that set out in the original Netscape specification), including
taking note of the max-age and port cookie-attributes
introduced with RFC 2965. Note:
The various named parameters found in
and headers
(eg. domain and expires ) are conventionally referred to
as attributes. To distinguish them from Python attributes, the
documentation for this module uses the term cookie-attribute
instead.
The module defines the following exception:
- exception LoadError
-
Instances of FileCookieJar raise this exception on failure to
load cookies from a file. Note:
For backwards-compatibility
with Python 2.4 (which raised an IOError),
LoadError is a subclass of IOError.
The following classes are provided:
class CookieJar( |
policy=None) |
-
policy is an object implementing the CookiePolicy
interface.
The CookieJar class stores HTTP cookies. It extracts cookies
from HTTP requests, and returns them in HTTP responses.
CookieJar instances automatically expire contained cookies
when necessary. Subclasses are also responsible for storing and
retrieving cookies from a file or database.
class FileCookieJar( |
filename, delayload=None,
policy=None) |
-
policy is an object implementing the CookiePolicy
interface. For the other arguments, see the documentation for the
corresponding attributes.
A CookieJar which can load cookies from, and perhaps save
cookies to, a file on disk. Cookies are NOT loaded from the
named file until either the load() or revert()
method is called. Subclasses of this class are documented in section
18.22.2.
-
This class is responsible for deciding whether each cookie should be
accepted from / returned to the server.
class DefaultCookiePolicy( |
blocked_domains=None,
allowed_domains=None,
netscape=True, rfc2965=False,
rfc2109_as_netscape=None,
hide_cookie2=False,
strict_domain=False,
strict_rfc2965_unverifiable=True,
strict_ns_unverifiable=False,
strict_ns_domain=DefaultCookiePolicy.DomainLiberal,
strict_ns_set_initial_dollar=False,
strict_ns_set_path=False
) |
-
Constructor arguments should be passed as keyword arguments only.
blocked_domains is a sequence of domain names that we never
accept cookies from, nor return cookies to. allowed_domains if
not None, this is a sequence of the only domains for which
we accept and return cookies. For all other arguments, see the
documentation for CookiePolicy and DefaultCookiePolicy
objects.
DefaultCookiePolicy implements the standard accept / reject
rules for Netscape and RFC 2965 cookies. By default, RFC 2109 cookies
(ie. cookies received in a header with a
version cookie-attribute of 1) are treated according to the RFC 2965
rules. However, if RFC 2965 handling is turned off or
rfc2109_as_netscape is True, RFC 2109 cookies are
'downgraded' by the CookieJar instance to Netscape cookies, by
setting the version attribute of the Cookie instance
to 0. DefaultCookiePolicy also provides some parameters to
allow some fine-tuning of policy.
-
This class represents Netscape, RFC 2109 and RFC 2965 cookies. It is
not expected that users of cookielib construct their own
Cookie instances. Instead, if necessary, call
make_cookies() on a CookieJar instance.
Release 2.5.2, documentation updated on 21st February, 2008.
See About this document... for information on suggesting changes.
|