11.14 urlparse -- Analizza le URL nei suoi componenti

Questo modulo definisce un'interfaccia standard per suddividere le Uniform Resource Locator (URL) in componenti (schema di indirizzamento, indirizzo di rete, percorso etc. etc.), per ricombinare i componenti in una stringa URL, e per convertire una ``URL relativa'' in una URL assoluta indicando una ``URL di base''.

Il modulo è stato progettato per essere rispondente alle RFC Internet sulle Relative Uniform Resource Locators (e scoprire un bug in una versione recente).

Definisce le seguenti funzioni:

urlparse( urlstring[, default_scheme[, allow_fragments]])
Analizza una URL in 6 componenti, restituendo una 6-tupla: (schema di indirizzamento, indirizzo di rete, percorso, parametri, richiesta, identificatore di frammento). Questo corrisponde alla struttura generale di una URL: scheme://netloc/path;parameters?query#fragment. Ogni elemento della tupla è una stringa possibilimente vuota. Il componente non viene suddiviso in parti più piccole (per esempio l'indirizzo di rete è una singola stringa) ed i caratteri di escape % non vengono espansi. I delimitatori, come mostrato sopra, non sono parte degli elementi della tupla, eccetto per un carattere barra nel componente dell'indirizzo path, che, se presente, viene mantenuto.

Esempio:

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

contiene la tupla

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

Se l'argomento default_scheme viene specificato, fornisce lo schema di indirizzamento predefinito, per essere usato solamente se la stringa URL non ne specifica una. Il valore predefinito per questo argomento è una stringa vuota.

Se l'argomento allow_fragments ha valore 0, gli identificatori di frammento non sono permessi, anche se lo schema di indirizzamento dell'URL normalmente li supporta. Il valore predefinito per questo argomento è 1.

urlunparse( tuple)
Costruisce una stringa URL da una tupla come quella restituita da uurlparse(). Il risultato potrebbe essere lievemente differente, ma equivalente, se le URL che erano state originariamente utilizzate avevano delimitatori ridondanti, per esempio ? con una interrogazione vuota (il loro stadio intermedio è equivalente).

urlsplit( urlstring[, default_scheme[, allow_fragments]])
Questo è simile a urlparse(), ma non divide i parametri della URL. Questo metodo dovrebbe essere usato generalmente al posto di urlparse() quando la sintassi più moderna delle URL consente parametri che possono essere applicati ad ogni segmento della porzione di percorso della URL (vedete la RFC 2396). È necessaria una funzione a parte per separare i segmenti del percorso ed i parametri. Questa funzione restituisce una tupla di 5 elementi: (schema di indirizzamento, posizione di rete, path, query, identificatore di frammento). Nuovo nella versione 2.2.

urlunsplit( tuple)
Combina gli elementi di una tupla come quella restituita da urlsplit() in una URL completa come se si trattasse di una stringa. Nuovo nella versione 2.2.

urljoin( base, url[, allow_fragments])
Costruisce una URL completa (``assoluta'') attraverso la combinazione di una ``URL base'' (base) con una ``URL relativa'' (url). Al suo interno, questa funzione usa i componenti della URL base, in particolar modo lo schema di indirizzamento, la posizione di rete e (solo una parte) del percorso, per fornire i componenti mancanti nella URL relativa.

Esempio:

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

contiene la stringa

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

L'argomento allow_fragments ha lo stesso significato di quello visto in urlparse().

urldefrag( url)
Se url contiene un identificatore di frammento, restituisce una versione modificata della url senza l'identificatore di frammento, e l'identificatore di frammento in una stringa separata. Se in url non c'è identificatore di frammento, restituisce la url non modificata ed una stringa vuota.

Vedete anche:

RFC 1738, Uniform Resource Locators (URL)
Questa specifica la sintassi formale e la semantica delle URL assolute.
RFC 1808, Relative Uniform Resource Locators
Questa RFC (Richiesta di commento) include le regole per unire una URL assoluta con una relativa, includendo un certo numero di ``esempi anormali'' che coprono il trattamento di casi limite.
RFC 2396, Uniform Resource Identifiers (URI): Generic Syntax
Il documento descrive il requisito generico sintattico sia per Uniform Resource Names (URN) che per Uniform Resource Locators (URL).
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.