This module defines a standard interface to break Uniform ResourceLocator (URL) strings up in components (addressing scheme, networklocation, path etc.), to combine the components back into a URLstring, 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 RelativeUniform Resource Locators (and discovered a bug in an earlierdraft!). It supports the following URL schemes:file,ftp,gopher,hdl,http,https,imap,mailto,mms,news,nntp,prospero,rsync,rtsp,rtspu,sftp,shttp,sip,sips,snews,svn,svn+ssh,telnet,wais.
New in version 2.5:Support for thesftp andsips schemes.
Theurlparse module defines the following functions:
| urlstring[, default_scheme[, allow_fragments]]) |
scheme://netloc/path;parameters?query#fragment.Each tuple item is a string, possibly empty.The components are not broken up in smaller parts (for example, the networklocation is a single string), and % escapes are not expanded.The delimiters as shown above are not part of the result,except for a leading slash in thepath component, which isretained if present. For example:>>> from urlparse import urlparse>>> o = urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')>>> o('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '')>>> o.scheme'http'>>> o.port80>>> o.geturl()'http://www.cwi.nl:80/%7Eguido/Python.html'If thedefault_scheme argument is specified, it gives thedefault addressing scheme, to be used only if the URL does notspecify one. The default value for this argument is the empty string.
If theallow_fragments argument is false, fragment identifiersare not allowed, even if the URL's addressing scheme normally doessupport them. The default value for this argument isTrue.
The return value is actually an instance of a subclass oftuple. This class has the following additional read-onlyconvenience attributes:
| Attribute | Index | Value | Value if not present |
|---|---|---|---|
| scheme | 0 | URL scheme specifier | empty string |
| netloc | 1 | Network location part | empty string |
| path | 2 | Hierarchical path | empty string |
| params | 3 | Parameters for last path element | empty string |
| query | 4 | Query component | empty string |
| fragment | 5 | Fragment identifier | empty string |
| username | User name | None | |
| password | Password | None | |
| hostname | Host name (lower case) | None | |
| port | Port number as integer, if present | None |
See section 18.17.1, ``Results ofurlparse() andurlsplit(),'' for moreinformation on the result object.
Changed in version 2.5:Added attributes to return value.
| parts) |
urlparse().Theparts argument can be any six-item iterable.This may result in a slightly different, but equivalent URL, if theURL that was parsed originally had unnecessary delimiters (for example,a ? with an empty query; the RFC states that these are equivalent).| urlstring[, default_scheme[, allow_fragments]]) |
The return value is actually an instance of a subclass oftuple. This class has the following additional read-onlyconvenience attributes:
| Attribute | Index | Value | Value if not present |
|---|---|---|---|
| scheme | 0 | URL scheme specifier | empty string |
| netloc | 1 | Network location part | empty string |
| path | 2 | Hierarchical path | empty string |
| query | 3 | Query component | empty string |
| fragment | 4 | Fragment identifier | empty string |
| username | User name | None | |
| password | Password | None | |
| hostname | Host name (lower case) | None | |
| port | Port number as integer, if present | None |
See section 18.17.1, ``Results ofurlparse() andurlsplit(),'' for moreinformation on the result object.
New in version 2.2.Changed in version 2.5:Added attributes to return value.
| parts) |
| base, url[, allow_fragments]) |
>>> from urlparse import urljoin>>> urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')'http://www.cwi.nl/%7Eguido/FAQ.html'Theallow_fragments argument has the same meaning and default asforurlparse().
Note:Ifurl is an absolute URL (that is, starting with// orscheme://, theurl's host name and/or scheme will be present in the result. For example:
>>> urljoin('http://www.cwi.nl/%7Eguido/Python.html',... '//www.python.org/%7Eguido')'http://www.python.org/%7Eguido'If you do not want that behavior, preprocesstheurl withurlsplit() andurlunsplit(),removing possiblescheme andnetloc parts.
| url) |
See Also: