11.1 webbrowser -- Un semplice gestore per browser web

Il modulo webbrowser fornisce un'interfaccia di altissimo livello per consentire la visualizzazione di documenti web agli utenti. Gli oggetti controller sono facili da usare e sono indipendenti dalla piattaforma. In molte circostanze, si otterrà un risultato semplicemente chiamando la funzione open() da questo modulo.

In Unix, si privilegiano i browser grafici in ambiente X11, ma verranno usati i browser testuali se i browser grafici non sono disponibili o se non è disponibile un display X11. Se vengono usati i browser testuali, il processo chiamante verrà bloccato finché l'utente non esce dal browser.

In Unix, se esiste la variabile d'ambiente BROWSER, verrà interpretata per sovrascrivere l'elenco predefinito dei browser per quella piattaforma, come una lista, separata da ":", di browser da provare in ordine. Quando il valore di uno degli elementi della lista contiene la stringa %s, questa viene interpretata come una opzione da riga di comando per il browser e viene utilizzata come argomento URL sostituito dal %s; se la parte non contiene %s, è semplicemente interpretata come il nome del browser da lanciare.

Per le piattaforme non Unix, o quando i browser X11 sono disponibili in Unix, il processo di controllo non attende che l'utente finisca con il browser, ma consente al browser di mantenere la propria finestra sul display.

Viene definita la seguente eccezione:

exception Error
Eccezione sollevata quando avviene un errore nel controllo del browser.

Sono definite le seguenti funzioni:

open( url[, new=0][, autoraise=1])
Mostra url utilizzando il browser predefinito. Se new è vera, verrà aperto un nuovo browser, quando possibile. Se autoraise è vera, la finestra è portata in primo piano, quando possibile (notare che in molti window manager, questo avviene indipendentemente dalle impostazioni di questa variabile).

open_new( url)
Apre url in una nuova finestra del browser predefinito, se possibile, altrimenti, apre url nella stessa finestra del browser.

get( [name])
Restituisce un oggetto controller per il browser tipo name. Se name è vuota, restituisce, per il browser predefinito, un controller appropriato per l'ambiente del chiamante.

register( name, constructor[, instance])
Registra il tipo name del browser. Quando un tipo di browser è registrato, la funzione get() può restituire un controller per quel tipo di browser. Se instance non viene fornita, o è None, il costruttore constructor verrà chiamato senza parametri per costruire una istanza quando richiesto. Se instance viene passata, il costruttore non verrà mai chiamato, e potrà essere None.

Il punto di ingresso è utile solo se si pianifica di impostare sia la variabile BROWSER o chiamare get con un argomento non vuoto corrispondente al nome del gestore dichiarato.

Un certo numero di tipi di browser sono predefiniti. Questa tavola fornisce i nomi dei tipi di browser che possono venire passati alla funzione get() e la corrispondente istanziazione per le classi controller, tutte definite in questo modulo.

Tipo nome  Nome classe  Note 
'mozilla' Netscape('mozilla')  
'netscape' Netscape('netscape')  
'mosaic' GenericBrowser('mosaic %s &')  
'kfm' Konqueror() (1)
'grail' Grail()  
'links' GenericBrowser('links %s')  
'lynx' GenericBrowser('lynx %s')  
'w3m' GenericBrowser('w3m %s')  
'windows-default' WindowsDefault (2)
'internet-config' InternetConfig (3)

Note:

(1)
``Konqueror'' è il file manager per l'ambiente Desktop KDE per Unix, e ha senso solamente se KDE è in esecuzione. Alcuni modi per rilevare correttamente KDE sarebbero apprezzati dato che la variabile d'ambiente KDEDIR non è sufficiente. Notare anche che il nome ``kfm'' viene usato anche quando viene eseguito il comando konqueror in KDE 2 -- l'implementazione stabilisce la migliore strategia per eseguire konqueror.

(2)
Solo sulle piattaforme Windows; richiede i moduli di estensione comuni win32api e win32con.

(3)
Solo su piattaforme MacOS; richiedono il modulo standard MacPython ic, descritto nel manuale dei Moduli di libreria Macintosh.



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