11.12 urlparse --- Découpe les URL en composants

Ce module définit une interface standard pour découper des chaînes d'URL (Uniform Resource Locator) en composants (schéma d'adressage, localisation réseau, chemin, etc.), pour reconstituer une URL à partir de ses composants, et pour convertir une ``URL relative'' en une URL absolue en fonction d'une ``URL de base.''

Ce module a été conçu pour correspondre au RFC Internet sur les Relative Uniform Resource Locators (et a permis de découvrir une erreur dans une ébauche précédente!).

Il définit les fonctions suivantes:

urlparse(chaine_url[, schema_defaut[, autorise_fragments]])
Découpe une URL en 6 composants, et retourne un tuple à 6 éléments: (schéma d'adressage, localisation réseau, chemin, paramètres, requête, identifiant de fragment). Ceci correspond à la structure générale d'une URL: schema://locres/chemin;parametres?requete#fragment. Chaque élément du tuple est une chaîne de caractères, éventuellement vide. Les composants ne sont pas découpés en parties plus petites (par exemple la localisation réseau est une chaîne de caractères unique), et les codes d'échappement % ne sont pas développés. Les délimiteurs montrés ci-dessus ne font pas partie des éléments du tuple, sauf pour une barre oblique au début du composant chemin, qui est conservé s'il est présent.

Exemple:

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

produit le tuple:

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

Si l'argument schema_defaut est spécifié, il donne le schéma d'adressage par défaut, à utiliser seulement si la chaîne d'URL n'en spécifie pas. La valeur par défaut pour cet argument est la chaîne vide.

Si l'argument autorise_fragments vaut zéro, les identifiants de fragments ne sont pas autorisés, même si le schéma d'adressage les prend normalement en charge. La valeur par défaut pour cet argument est 1.

urlunparse(tuple)
Construit une chaîne d'URL à partir d'un tuple tel que celui retourné par urlparse(). Le résultat peut être une URL légèrement différente, mais équivalente, au cas où l'URL qui avait été découpée avait des délimiteurs redondants, par exemple un ? avec une requête vide (l'ébauche indique que ces URL sont équivalentes).

urljoin(base, url[, autorise_fragments])
Construit une URL pleine (``absolue'') en combinant une ``URL de base'' (base) avec une ``URL relative'' (url). En gros, se sert de composants de l'URL de base, en particulier le schéma d'adressage, la localisation réseau et le chemin (ou une partie du chemin) pour fournir les composants manquants dans l'URL relative.

Exemple:

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

produit la chaîne

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

L'argument autorise_fragments a la même signification que pour urlparse().

Voir aussi:

RFC 1738, Uniform Resource Locators (URL)
Spécifie la syntaxe formelle et la sémantique des URL absolues.
RFC 1808, Relative Uniform Resource Locators
Ce RFC (Request For Comments) inclut les règles pour joindre une URL relative et une URL absolue, et donne un certain nombre d'``Exemples Anormaux'' qui traitent des effets de bord.
RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax
Document qui décrit les exigences syntaxiques génériques à la fois pour les Uniform Resource Names (URN) et les Uniform Resource Locators (URL).