webbrowser — Bequemer Controller für Webbrowser¶
Quellcode: Lib/webbrowser.py
Das Modul webbrowser bietet eine High-Level-Schnittstelle, um dem Benutzer webbasierte Dokumente anzuzeigen. Unter den meisten Umständen genügt der Aufruf der Funktion open() aus diesem Modul.
Unter Unix werden grafische Browser unter X11 bevorzugt, aber Textmodus-Browser werden verwendet, wenn grafische Browser nicht verfügbar sind oder kein X11-Display vorhanden ist. Wenn Textmodus-Browser verwendet werden, blockiert der aufrufende Prozess, bis der Benutzer den Browser beendet.
Wenn die Umgebungsvariable BROWSER existiert, wird sie als Liste von durch os.pathsep getrennten Browsern interpretiert, die vor den plattformspezifischen Standardwerten ausprobiert werden. Wenn der Wert eines Listenteils die Zeichenkette %s enthält, wird er als eine wörtliche Browser-Befehlszeile interpretiert, die mit der URL als Argument für %s verwendet wird; wenn der Wert ein einzelnes Wort ist, das sich auf einen der bereits registrierten Browser bezieht, wird dieser Browser an den Anfang der Suchliste gesetzt; wenn der Teil keine %s enthält, wird er einfach als Name des zu startenden Browsers interpretiert. [1]
Geändert in Version 3.14: Die Variable BROWSER kann nun auch verwendet werden, um die Reihenfolge der plattformspezifischen Standardwerte zu ändern. Dies ist besonders nützlich unter macOS, wo die plattformspezifischen Standardwerte sich nicht auf Befehlszeilenwerkzeuge in PATH beziehen.
Für Nicht-Unix-Plattformen oder wenn ein entfernter Browser unter Unix verfügbar ist, wartet der steuernde Prozess nicht, bis der Benutzer den Browser beendet hat, sondern erlaubt dem entfernten Browser, seine eigenen Fenster auf dem Display zu verwalten. Wenn entfernte Browser unter Unix nicht verfügbar sind, startet der steuernde Prozess einen neuen Browser und wartet.
Unter iOS werden die Umgebungsvariable BROWSER sowie alle Argumente, die das automatische Aktivieren, die Browserpräferenz und das Erstellen neuer Tabs/Fenster steuern, ignoriert. Webseiten werden *immer* im bevorzugten Browser des Benutzers in einem neuen Tab geöffnet, wobei der Browser in den Vordergrund gebracht wird. Die Verwendung des Moduls webbrowser unter iOS erfordert das Modul ctypes. Wenn ctypes nicht verfügbar ist, schlagen Aufrufe von open() fehl.
Das Skript webbrowser kann als Befehlszeilenschnittstelle für das Modul verwendet werden. Es akzeptiert eine URL als Argument. Es akzeptiert die folgenden optionalen Parameter
- -n, --new-window¶
Öffnet die URL nach Möglichkeit in einem neuen Browserfenster.
- -t, --new-tab¶
Öffnet die URL in einem neuen Browser-Tab.
Die Optionen sind naturgemäß gegenseitig ausschließend. Anwendungsbeispiel
python -m webbrowser -t "https://pythonlang.de"
Verfügbarkeit: nicht WASI, nicht Android.
Die folgende Ausnahme ist definiert
- exception webbrowser.Error¶
Ausnahme, die ausgelöst wird, wenn ein Fehler bei der Browsersteuerung auftritt.
Die folgenden Funktionen sind definiert
- webbrowser.open(url, new=0, autoraise=True)¶
Zeigt url mit dem Standardbrowser an. Wenn new 0 ist, wird url nach Möglichkeit im selben Browserfenster geöffnet. Wenn new 1 ist, wird nach Möglichkeit ein neues Browserfenster geöffnet. Wenn new 2 ist, wird nach Möglichkeit eine neue Browserseite („Tab“) geöffnet. Wenn autoraise
Trueist, wird das Fenster angehoben, wenn möglich (beachten Sie, dass dies unter vielen Fenstermanagern unabhängig von dieser Einstellung geschieht).Gibt
Truezurück, wenn ein Browser erfolgreich gestartet wurde, andernfallsFalse.Beachten Sie, dass auf einigen Plattformen der Versuch, einen Dateinamen über diese Funktion zu öffnen, funktionieren kann und das zugehörige Programm des Betriebssystems startet. Dies ist jedoch weder unterstützt noch portabel.
Löst ein Auditing-Ereignis
webbrowser.openmit dem Argumenturlaus.
- webbrowser.open_new(url)¶
Öffnet url in einem neuen Fenster des Standardbrowsers, wenn möglich, andernfalls wird url im einzigen Browserfenster geöffnet.
Gibt
Truezurück, wenn ein Browser erfolgreich gestartet wurde, andernfallsFalse.
- webbrowser.open_new_tab(url)¶
Öffnet url in einer neuen Seite („Tab“) des Standardbrowsers, wenn möglich, andernfalls ist dies äquivalent zu
open_new().Gibt
Truezurück, wenn ein Browser erfolgreich gestartet wurde, andernfallsFalse.
- webbrowser.get(using=None)¶
Gibt ein Controller-Objekt für den Browsertyp using zurück. Wenn using
Noneist, wird ein Controller für einen Standardbrowser zurückgegeben, der für die Umgebung des Aufrufers geeignet ist.
- webbrowser.register(name, constructor, instance=None, *, preferred=False)¶
Registriert den Browsertyp name. Sobald ein Browsertyp registriert ist, kann die Funktion
get()einen Controller für diesen Browsertyp zurückgeben. Wenn instance nicht bereitgestellt wird oderNoneist, wird constructor ohne Parameter aufgerufen, um bei Bedarf eine Instanz zu erstellen. Wenn instance bereitgestellt wird, wird constructor nie aufgerufen und kannNonesein.Wenn preferred auf
Truegesetzt wird, ist dieser Browser ein bevorzugtes Ergebnis für einen Aufruf vonget()ohne Argument. Andernfalls ist dieser Einstiegspunkt nur nützlich, wenn Sie die UmgebungsvariableBROWSERsetzen oderget()mit einem nicht leeren Argument aufrufen möchten, das mit dem Namen eines von Ihnen deklarierten Handlers übereinstimmt.Geändert in Version 3.7: Der nur-Schlüsselwort-Parameter preferred wurde hinzugefügt.
Eine Reihe von Browsertypen sind vordefiniert. Diese Tabelle zeigt die Typnamen, die an die Funktion get() übergeben werden können, und die entsprechenden Instanziierungen für die Controller-Klassen, die alle in diesem Modul definiert sind.
Typ Name |
Klassenname |
Hinweise |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(4) |
Hinweise
„Konqueror“ ist der Dateimanager für die KDE-Desktopumgebung für Unix und macht nur Sinn, wenn KDE läuft. Eine Möglichkeit, KDE zuverlässig zu erkennen, wäre schön; die Variable
KDEDIRreicht nicht aus. Beachten Sie auch, dass der Name „kfm“ auch bei Verwendung des Befehls konqueror mit KDE 2 verwendet wird – die Implementierung wählt die beste Strategie für das Ausführen von Konqueror.Nur auf Windows-Plattformen.
Nur auf macOS.
Nur auf iOS.
Hinzugefügt in Version 3.2: Eine neue Klasse MacOSXOSAScript wurde hinzugefügt und wird unter Mac anstelle der vorherigen Klasse MacOSX verwendet. Dies fügt Unterstützung für das Öffnen von Browsern hinzu, die nicht als OS-Standard festgelegt sind.
Hinzugefügt in Version 3.3: Unterstützung für Chrome/Chromium wurde hinzugefügt.
Geändert in Version 3.12: Die Unterstützung für mehrere veraltete Browser wurde entfernt. Entfernte Browser sind Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape und Firefox-Versionen 35 und darunter.
Geändert in Version 3.13: Die Unterstützung für iOS wurde hinzugefügt.
Hier sind einige einfache Beispiele
url = 'https://docs.pythonlang.de/'
# Open URL in a new tab, if a browser window is already open.
webbrowser.open_new_tab(url)
# Open URL in new window, raising the window if possible.
webbrowser.open_new(url)
Browser-Controller-Objekte¶
Browser-Controller bieten das Attribut name und die folgenden drei Methoden, die die bequemen Funktionen auf Modulebene parallelisieren
- controller.name¶
Systemabhängiger Name für den Browser.
- controller.open(url, new=0, autoraise=True)¶
Zeigt url mit dem von diesem Controller verwalteten Browser an. Wenn new 1 ist, wird nach Möglichkeit ein neues Browserfenster geöffnet. Wenn new 2 ist, wird nach Möglichkeit eine neue Browserseite („Tab“) geöffnet.
- controller.open_new(url)¶
Öffnet url in einem neuen Fenster des von diesem Controller verwalteten Browsers, wenn möglich, andernfalls wird url im einzigen Browserfenster geöffnet. Alias für
open_new().
- controller.open_new_tab(url)¶
Öffnet url in einer neuen Seite („Tab“) des von diesem Controller verwalteten Browsers, wenn möglich, andernfalls ist dies äquivalent zu
open_new().
Fußnoten