GNU Info

Info Node: (python2.1-lib.info)urlparse

(python2.1-lib.info)urlparse


Next: SocketServer Prev: telnetlib Up: Internet Protocols and Support
Enter node , (file) or (file)node

Parse URLs into components
==========================

Parse URLs into components.

This module defines a standard interface to break Uniform Resource
Locator (URL) strings up in components (addressing scheme, network
location, path etc.), to combine the components back into a URL string,
and to convert a "relative URL" to an absolute URL given a "base URL."

The module has been designed to match the Internet RFC on Relative
Uniform Resource Locators (and discovered a bug in an earlier draft!).

It defines the following functions:

`urlparse(urlstring[, default_scheme[, allow_fragments]])'
     Parse a URL into 6 components, returning a 6-tuple: (addressing
     scheme, network location, path, parameters, query, fragment
     identifier).  This corresponds to the general structure of a URL:
     `SCHEME://NETLOC/PATH;PARAMETERS?QUERY#FRAGMENT'.  Each tuple item
     is a string, possibly empty.  The components are not broken up in
     smaller parts (e.g. the network location is a single string), and
     % escapes are not expanded.  The delimiters as shown above are not
     part of the tuple items, except for a leading slash in the PATH
     component, which is retained if present.

     Example:

          urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')

     yields the tuple

          ('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '')

     If the DEFAULT_SCHEME argument is specified, it gives the default
     addressing scheme, to be used only if the URL string does not
     specify one.  The default value for this argument is the empty
     string.

     If the ALLOW_FRAGMENTS argument is zero, fragment identifiers are
     not allowed, even if the URL's addressing scheme normally does
     support them.  The default value for this argument is `1'.

`urlunparse(tuple)'
     Construct a URL string from a tuple as returned by `urlparse()'.
     This may result in a slightly different, but equivalent URL, if the
     URL that was parsed originally had redundant delimiters, e.g. a ?
     with an empty query (the draft states that these are equivalent).

`urljoin(base, url[, allow_fragments])'
     Construct a full ("absolute") URL by combining a "base URL" (BASE)
     with a "relative URL" (URL).  Informally, this uses components of
     the base URL, in particular the addressing scheme, the network
     location and (part of) the path, to provide missing components in
     the relative URL.

     Example:

          urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')

     yields the string

          'http://www.cwi.nl/%7Eguido/FAQ.html'

     The ALLOW_FRAGMENTS argument has the same meaning as for
     `urlparse()'.

See also:
    *RFC1738 Uniform Resource Locators (URL)*
          This specifies the formal syntax and semantics of absolute
          URLs.

    *RFC1808 Relative Uniform Resource Locators*
          This Request For Comments includes the rules for joining an
          absolute and a relative URL, including a fair normal of
          "Abnormal Examples" which govern the treatment of border
          cases.

    *RFC2396 Uniform Resource Identifiers (URI): Generic Syntax*
          Document describing the generic syntactic requirements for
          both Uniform Resource Names (URNs) and Uniform Resource
          Locators (URLs).


automatically generated by info2www version 1.2.2.9