11.5 urllib2 -- Libreria estensibile per l'apertura delle URL

Il modulo urllib2 definisce funzioni e classi che aiutano nell'apertura di URL (in massima parte HTTP) in un mondo complesso: autenticazione di base e digest, redirezione e altro.

il modulo urllib2 definisce le seguenti funzioni:

urlopen( url[, data])
Apre l'URL url, che pu� essere sia una stringa che un oggetto Request (attualmente il codice verifica che sia realmente un'istanza Request, o un'istanza di una sotto classe di Request).

data dovrebbe essere una stringa, che specifica ulteriori dati da inviare al server. In una richiesta HTTP, che � l'unica a supportare data, dovrebbe essere un buffer nel formato di application/x-www-form-urlencoded, per esempio come quello restituito da urllib.urlencode().

La funzione restituisce un oggetto simile a file con due ulteriori metodi:

In caso di errore solleva l'eccezione URLError.

install_opener( opener)
Installa un oggetto OpenerDirector nel predefinito opener. Il codice non verifica per un OpenerDirector reale, ed ogni classe con l'appropriata interfaccia sar� in grado di lavorare.

build_opener( [handler, ...])
Restituisce un'istanza di OpenerDirector, che concatena gli handler nell'ordine in cui vengono forniti. Gli handler possono essere sia istanze di BaseHandler, o sotto classi di BaseHandler (in tal caso � possibile chiamare il costruttore senza alcun parametro). Le istanze delle seguenti classi verranno inserite nelle prime posizioni nell'handler, fino a che l'handler stesso le conterr�, o conterr� istanze o sotto classi di loro stesse: ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor.

Se l'installazione di Python ha il supporto SSL (se socket.ssl() esiste), verr� aggiunto anche HTTPSHandler.

A partire da Python 2.3, una sotto classe di BaseHandler pu� anche cambiare la propria variabile handler_order per modificare la sua posizione nella lista degli handler. Dopo ProxyHandler, che ha un handler_order del valore di 100, tutti gli handler vengono impostati a 500.

Le seguenti eccezioni vengono sollevate quando necessario:

exception URLError
Gli handler (NdT: gestori) sollevano questa eccezione (o l'eccezione derivata) quando incappano in un problema. Si tratta di una sotto classe di IOError.

exception HTTPError
Una sotto classe di URLError, pu� anche funzionare restituendo un valore simile a file non particolare (la stessa cosa restituita da urlopen()). Questo � utile quando si gestiscono errori HTTP particolari, come una richiesta di autenticazione.

exception GopherError
Una sotto classe di URLError, questo � un errore sollevato dall'handler del Gopher.

Sono disponibili le seguenti classi:

class Request( url[, data[, headers]])
Questa classe � una astrazione di una richiesta URL.

url dovrebbe essere una stringa che rappresenta una URL valida. Per una descrizione di data vedere la descrizione di add_data(). Gli headers dovrebbero essere un dizionario, e verranno trattati come quando add_header() viene chiamato con ogni chiave e valore per argomento.

class OpenerDirector( )
La classe OpenerDirector apre gli URL tramite BaseHandler congiuntamente. Gestisce il collegamento degli handler, ed il recupero dagli errori.

class BaseHandler( )
Questa � una classe di base per tutti gli handler registrati; e gestisce solo i semplici meccanismi di registrazione.

class HTTPDefaultErrorHandler( )
Una classe che definisce un handler predefinito per le risposte di errore HTTP; tutte le risposte sono convertite in eccezioni HTTPError.

class HTTPRedirectHandler( )
Una classe che gestisce le redirezioni.

class ProxyHandler( [proxies])
Fa s� che le richieste transitino attraverso un proxy. Se proxies viene indicato, deve essere un dizionario che mappi i nomi di protocollo in URL di proxy. Il predefinito � leggere la lista di proxy dalla variabili ambiente protocol_proxy.

class HTTPPasswordMgr( )
Mantiene un database di (realm, uri) -> (user, password) mappate.

class HTTPPasswordMgrWithDefaultRealm( )
Mantiene un database di (realm, uri) -> (user, password) mappati. Un insieme di None viene considerato un insieme catch-all (NdT: acchiappa tutto) che viene ricercato se nessun altro insieme corrisponde.

class AbstractBasicAuthHandler( [password_mgr])
Questa � una classe intermedia che aiuta con l'autenticazione HTTP, sia verso host remoti che verso proxy. password_mgr, se passata, dovrebbe essere qualcosa di compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni sull'interfaccia che deve essere supportata.

class HTTPBasicAuthHandler( [password_mgr])
Gestisce l'autenticazione con l'host remoto. password_mgr, se passata, dovrebbe essere qualcosa di compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni sulle interfacce che devono essere supportate.

class ProxyBasicAuthHandler( [password_mgr])
Gestisce l'autenticazione con il proxy. password_mgr, se passata, dovrebbe essere qualcosa di compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni sull'interfaccia deve dev'essere supportata.

class AbstractDigestAuthHandler( [password_mgr])
Questa � una classe intermedia che aiuta con l'autenticazione HTTP, sia verso host remoti che verso proxy. password_mgr, se passata, dovrebbe essere qualcosa che sia compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni circa l'interfaccia che deve essere supportata.

class HTTPDigestAuthHandler( [password_mgr])
Gestisce l'autenticazione con l'host remoto. password_mgr, se passata, dovrebbe essere qualcosa di compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni sull'interfaccia che deve essere supportata.

class ProxyDigestAuthHandler( [password_mgr])
Gestisce le autenticazioni con il proxy. password_mgr, se passata, dovrebbe essere qualcosa di compatibile con HTTPPasswordMgr; fare riferimento alla sezione 11.5.6 per informazioni sull'interfaccia che deve essere supportata.

class HTTPHandler( )
Una classe che gestisce l'apertura di URL HTTP.

class HTTPSHandler( )
Una classe che gestisce l'apertura di URL HTTPS.

class FileHandler( )
Apre file locali.

class FTPHandler( )
Apre URL FTP.

class CacheFTPHandler( )
Apre URL FTP, mantenendo una cache delle connessioni FTP aperte per minimizzare i ritardi.

class GopherHandler( )
Apre URL gopher.

class UnknownHandler( )
Una classe acchiappa tutto per gestire URL non riconosciute.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.