11.4.1 URLopener Objects
URLopener and FancyURLopener objects have the
following attributes.
- open(fullurl[, data])
-
Open fullurl using the appropriate protocol. This method sets
up cache and proxy information, then calls the appropriate open method with
its input arguments. If the scheme is not recognized,
open_unknown() is called. The data argument
has the same meaning as the data argument of urlopen().
- open_unknown(fullurl[, data])
-
Overridable interface to open unknown URL types.
- retrieve(url[,
filename[,
reporthook[, data]]])
-
Retrieves the contents of url and places it in filename. The
return value is a tuple consisting of a local filename and either a
mimetools.Message object containing the response headers (for remote
URLs) or None (for local URLs). The caller must then open and read the
contents of filename. If filename is not given and the URL
refers to a local file, the input filename is returned. If the URL is
non-local and filename is not given, the filename is the output of
tempfile.mktemp() with a suffix that matches the suffix of the last
path component of the input URL. If reporthook is given, it must be
a function accepting three numeric parameters. It will be called after each
chunk of data is read from the network. reporthook is ignored for
local URLs.
If the url uses the http: scheme identifier, the optional
data argument may be given to specify a POST
request
(normally the request type is GET
). The data argument
must in standard application/x-www-form-urlencoded format;
see the urlencode() function below.
- version
-
Variable that specifies the user agent of the opener object. To get
urllib to tell servers that it is a particular user agent,
set this in a subclass as a class variable or in the constructor
before calling the base constructor.
The FancyURLopener class offers one additional method that
should be overloaded to provide the appropriate behavior:
- prompt_user_passwd(host, realm)
-
Return information needed to authenticate the user at the given host
in the specified security realm. The return value should be a tuple,
(user, password)
, which can be used for basic
authentication.
The implementation prompts for this information on the terminal; an
application should override this method to use an appropriate
interaction model in the local environment.
See About this document... for information on suggesting changes.