This module provides a high-level interface for fetching data across the World-Wide Web. In particular, the urlopen() function is similar to the built-in function open(), but accepts Universal Resource Locators (URLs) instead of filenames. Some restrictions apply -- it can only open URLs for reading, and no seek operations are available.
It defines the following public functions:
Except for the info() method, these methods have the same interface as for file objects -- see section 2.1 in this manual. (It is not a built-in file object, however, so it can't be used at those few places where a true built-in file object is required.)
The info() method returns an instance of the class mimetools.Message containing meta-information associated with the URL. When the method is HTTP, these headers are those returned by the server at the head of the retrieved HTML page (including Content-Length and Content-Type). When the method is FTP, a Content-Length header will be present if (as is now usual) the server passed back a file length in response to the FTP retrieval request. When the method is local-file, returned headers will include a Date representing the file's last-modified time, a Content-Length giving file size, and a Content-Type containing a guess at the file's type. See also the description of the mimetools module.
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.
The second argument, if present, specifies the file location to copy to (if absent, the location will be a tempfile with a generated name). The third argument, if present, is a hook function that will be called once on establishment of the network connection and once after each block read thereafter. The hook will be passed three arguments; a count of blocks transferred so far, a block size in bytes, and the total size of the file. The third argument may be -1 on older FTP servers which do not return a file size in response to a retrieval request.
Example: quote('/connolly/') yields '/%7econnolly/'.
Example: unquote('/%7Econnolly/') yields '/connolly/'.
Restrictions: