webbrowser
— Bekväm styrning av webbläsare¶
Källkod: Lib/webbrowser.py
Modulen webbrowser
tillhandahåller ett gränssnitt på hög nivå för att visa webbaserade dokument för användare. Under de flesta omständigheter räcker det med att anropa funktionen open()
från den här modulen.
Under Unix föredras grafiska webbläsare under X11, men webbläsare i textläge kommer att användas om grafiska webbläsare inte är tillgängliga eller om en X11-skärm inte är tillgänglig. Om webbläsare i textläge används kommer den anropande processen att blockeras tills användaren avslutar webbläsaren.
Om miljövariabeln BROWSER
finns tolkas den som den os.pathsep
-separerade listan över webbläsare som ska provas före plattformens standardinställningar. Om värdet på en del av listan innehåller strängen %s
tolkas den som en bokstavlig kommandorad för webbläsaren som ska användas med argumentet URL ersatt med %s
; om värdet är ett enda ord som hänvisar till en av de redan registrerade webbläsarna läggs denna webbläsare till längst fram i söklistan; om delen inte innehåller %s
tolkas den helt enkelt som namnet på den webbläsare som ska startas. [1]
Ändrad i version 3.14: Variabeln BROWSER
kan nu också användas för att ändra ordningen på listan med plattformsstandardvärden. Detta är särskilt användbart på macOS där plattformens standardinställningar inte hänvisar till kommandoradsverktyg på PATH
.
För plattformar som inte är Unix, eller när en fjärransluten webbläsare är tillgänglig på Unix, väntar den styrande processen inte på att användaren ska avsluta webbläsaren, utan låter den fjärranslutna webbläsaren behålla sina egna fönster på skärmen. Om fjärranslutna webbläsare inte är tillgängliga på Unix, startar den styrande processen en ny webbläsare och väntar.
På iOS ignoreras miljövariabeln BROWSER
samt alla argument som styr autoraise, webbläsarinställningar och skapande av nya flikar/fönster. Webbsidor kommer alltid att öppnas i den webbläsare som användaren föredrar, i en ny flik, och webbläsaren kommer att vara i förgrunden. För att modulen webbrowser
ska kunna användas på iOS krävs modulen ctypes
. Om ctypes
inte är tillgänglig kommer anrop till open()
att misslyckas.
Skriptet webbrowser kan användas som ett kommandoradsgränssnitt för modulen. Det accepterar en URL som argument. Det accepterar följande valfria parametrar:
- -n, --new-window¶
Öppnar URL:en i ett nytt webbläsarfönster, om möjligt.
- -t, --new-tab¶
Öppnar URL:en i en ny flik i webbläsaren.
Alternativen är naturligtvis ömsesidigt uteslutande. Exempel på användning:
python -m webbrowser -t "https://www.python.org"
Tillgänglighet: not WASI, not Android.
Följande undantag definieras:
- exception webbrowser.Error¶
Undantag som uppstår när ett fel i webbläsarkontrollen inträffar.
Följande funktioner är definierade:
- webbrowser.open(url, new=0, autoraise=True)¶
Visa url med hjälp av standardwebbläsaren. Om new är 0 öppnas url i samma webbläsarfönster om möjligt. Om new är 1 öppnas om möjligt ett nytt webbläsarfönster. Om new är 2 öppnas om möjligt en ny webbläsarsida (”tabb”). Om autoraise är
True
höjs fönstret om möjligt (observera att detta kommer att ske i många fönsterhanterare oavsett inställningen för denna variabel).Returnerar
True
om en webbläsare har startats framgångsrikt, annarsFalse
.Observera att på vissa plattformar kan det fungera att försöka öppna ett filnamn med hjälp av denna funktion och starta operativsystemets tillhörande program. Detta stöds dock inte och är inte heller portabelt.
Utlöser en auditing event
webbrowser.open
med argumenteturl
.
- webbrowser.open_new(url)¶
Öppna url i ett nytt fönster i standardwebbläsaren om det är möjligt, annars öppnas url i det enda webbläsarfönstret.
Returnerar
True
om en webbläsare har startats framgångsrikt, annarsFalse
.
- webbrowser.open_new_tab(url)¶
Öppna url på en ny sida (”flik”) i standardwebbläsaren, om möjligt, annars motsvarande
open_new()
.Returnerar
True
om en webbläsare har startats framgångsrikt, annarsFalse
.
- webbrowser.get(using=None)¶
Returnerar ett controller-objekt för webbläsartypen using. Om using är
None
, returneras en styrenhet för en standardwebbläsare som är lämplig för uppringarens miljö.
- webbrowser.register(name, constructor, instance=None, *, preferred=False)¶
Registrera webbläsartypen namn. När en webbläsartyp är registrerad kan funktionen
get()
returnera en styrenhet för den webbläsartypen. Om instance inte anges, eller ärNone
, kommer constructor att anropas utan parametrar för att skapa en instans när det behövs. Om instance anges kommer constructor aldrig att anropas och kan varaNone
.Om du anger preferred till
True
blir den här webbläsaren det föredragna resultatet för ettget()
-anrop utan argument. Annars är denna ingångspunkt endast användbar om du planerar att antingen ställa in variabelnBROWSER
eller anropaget()
med ett icke-tomt argument som matchar namnet på en hanterare som du deklarerar.Ändrad i version 3.7: preferred keyword-only parameter lades till.
Ett antal webbläsartyper är fördefinierade. I denna tabell anges de typnamn som kan skickas till funktionen get()
och motsvarande instansieringar för kontrollerklasserna, som alla definieras i denna modul.
Typnamn |
Klassnamn |
Anteckningar |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(4) |
Anteckningar:
”Konqueror” är filhanteraren för skrivbordsmiljön KDE för Unix, och är bara meningsfull att använda om KDE körs. Det vore bra med något sätt att på ett tillförlitligt sätt upptäcka KDE; variabeln
KDEDIR
är inte tillräcklig. Notera också att namnet ”kfm” används även när man använder kommandot konqueror med KDE 2 — implementationen väljer den bästa strategin för att köra Konqueror.Endast på Windows-plattformar.
Endast på macOS.
Endast på iOS.
Tillagd i version 3.2: En ny MacOSXOSAScript
-klass har lagts till och används på Mac istället för den tidigare MacOSX
-klassen. Detta ger stöd för att öppna webbläsare som för närvarande inte är inställda som standard för operativsystemet.
Tillagd i version 3.3: Stöd för Chrome/Chromium har lagts till.
Ändrad i version 3.12: Stöd för flera föråldrade webbläsare har tagits bort. Bland de borttagna webbläsarna finns Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape och Firefox version 35 och lägre.
Ändrad i version 3.13: Stöd för iOS har lagts till.
Här är några enkla exempel:
url = 'https://docs.python.org/'
# Öppna URL i en ny flik, om ett webbläsarfönster redan är öppet.
webbrowser.open_new_tab(url)
# Öppna URL i ett nytt fönster, om möjligt genom att höja fönstret.
webbrowser.open_new(url)
Kontrollobjekt för webbläsare¶
Webbläsarkontroller tillhandahåller attributet name
och följande tre metoder som är parallella bekvämlighetsfunktioner på modulnivå:
- controller.name¶
Systemberoende namn för webbläsaren.
- controller.open(url, new=0, autoraise=True)¶
Visa url med hjälp av den webbläsare som hanteras av denna styrenhet. Om new är 1, öppnas ett nytt webbläsarfönster om möjligt. Om new är 2, öppnas en ny webbläsarsida (”tabb”) om möjligt.
- controller.open_new(url)¶
Öppna url i ett nytt fönster i den webbläsare som hanteras av denna controller, om möjligt, annars öppnas url i det enda webbläsarfönstret. Alias
open_new()
.
- controller.open_new_tab(url)¶
Öppna url på en ny sida (”flik”) i den webbläsare som hanteras av denna controller, om möjligt, annars motsvarande
open_new()
.
Fotnoter