11.3.1 URLopener Objects
Keywords: lib

##
11.3.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.