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, annars False.

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 argumentet url.

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, annars False.

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, annars False.

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 är None, 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 vara None.

Om du anger preferred till True blir den här webbläsaren det föredragna resultatet för ett get()-anrop utan argument. Annars är denna ingångspunkt endast användbar om du planerar att antingen ställa in variabeln BROWSER eller anropa get() 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

'mozilla'

Mozilla('mozilla')

'firefox'

Mozilla('mozilla')

'epiphany'

Epiphany('epiphany')

'kfmclient'

Konqueror()

(1)

'konqueror'

Konqueror()

(1)

'kfm'

Konqueror()

(1)

'opera'

Opera()

'links'

GenericBrowser('links')

'elinks'

Elinks('elinks')

'lynx'

GenericBrowser('lynx')

'w3m'

GenericBrowser('w3m')

'windows-default'

WindowsDefault

(2)

'macosx'

MacOSXOSAScript('default')

(3)

'safari'

MacOSXOSAScript('safari')

(3)

'google-chrome'

Chrome('google-chrome')

'chrome'

Chrome('chrome')

'chromium'

Chromium('chromium')

'chromium-browser'

Chromium('chromium-browser')

'iosbrowser'

IOSBrowser

(4)

Anteckningar:

  1. ”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.

  2. Endast på Windows-plattformar.

  3. Endast på macOS.

  4. 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