webbrowser — удобный контроллер веб-браузера
Исходный код: Lib/webbrowser.py
Модуль webbrowser предоставляет высокоуровневый интерфейс для отображения пользователям веб-документов. В большинстве случаев достаточно вызвать функцию open() из этого модуля.
В Unix графические браузеры предпочтительны при наличии X11, но если графические браузеры недоступны или отсутствует дисплей X11, будут использоваться текстовые браузеры. Если используются текстовые браузеры, вызывающий процесс будет заблокирован до выхода пользователя из браузера.
Если существует переменная среды BROWSER, она интерпретируется как список браузеров, разделённых os.pathsep, которые следует попробовать до браузеров, предлагаемых платформой по умолчанию. Если значение элемента списка содержит строку %s, оно интерпретируется как буквальная командная строка браузера, в которой аргумент URL подставляется вместо %s; если элемент не содержит %s, он интерпретируется просто как имя запускаемого браузера. [1]
На платформах, отличных от Unix, а также в случае, когда в Unix доступен удалённый браузер, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удалённому браузеру самостоятельно управлять своими окнами на дисплее. Если в Unix удалённые браузеры недоступны, управляющий процесс запустит новый браузер и будет ждать.
Скрипт webbrowser можно использовать как интерфейс командной строки для модуля. В качестве аргумента он принимает URL. Также он принимает следующие необязательные параметры: -n открывает URL в новом окне браузера, если это возможно; -t открывает URL на новой странице браузера («вкладке»). Разумеется, эти параметры взаимоисключающие. Пример использования:
python -m webbrowser -t "https://www.python.org"
Доступность: не Emscripten, не WASI.
Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten и wasm32-wasi. Дополнительные сведения см. в разделе Платформы WebAssembly.
Определено следующее исключение:
-
exception webbrowser.Error -
Исключение, возникающее при ошибке управления браузером.
Определены следующие функции:
-
webbrowser.open(url, new=0, autoraise=True) -
Отображает url в браузере по умолчанию. Если new равно 0, url открывается в том же окне браузера, если это возможно. Если new равно 1, по возможности открывается новое окно браузера. Если new равно 2, по возможности открывается новая страница браузера («вкладка»). Если autoraise равно
True, окно выводится на передний план, если это возможно (обратите внимание, что во многих оконных менеджерах это происходит независимо от значения данной переменной).Возвращает
True, если браузер успешно запущен, иFalseв противном случае.Обратите внимание, что на некоторых платформах эта функция может открывать имя файла и запускать связанную с ним программу операционной системы. Однако такая возможность не поддерживается и не является переносимой.
Вызывает событие аудита
webbrowser.openс аргументомurl.
-
webbrowser.open_new(url) -
По возможности открывает url в новом окне браузера по умолчанию; в противном случае открывает url в единственном окне браузера.
Возвращает
True, если браузер успешно запущен, иFalseв противном случае.
-
webbrowser.open_new_tab(url) -
По возможности открывает url на новой странице («вкладке») браузера по умолчанию; в противном случае действует так же, как
open_new().Возвращает
True, если браузер успешно запущен, иFalseв противном случае.
-
webbrowser.get(using=None) -
Возвращает объект-контроллер для типа браузера using. Если using равно
None, возвращает контроллер для браузера по умолчанию, подходящего для среды вызывающего процесса.
-
webbrowser.register(name, constructor, instance=None, *, preferred=False) -
Регистрирует тип браузера name. После регистрации типа браузера функция
get()может возвращать контроллер для этого типа браузера. Если instance не указан или равенNone, при необходимости для создания экземпляра будет вызван constructor без параметров. Если instance указан, constructor никогда не вызывается и может быть равенNone.Если задать для preferred значение
True, этот браузер станет предпочтительным результатом вызоваget()без аргументов. В противном случае эта точка входа полезна только в том случае, если вы собираетесь задать переменнуюBROWSERили вызватьget()с непустым аргументом, соответствующим имени объявленного вами обработчика.Изменено в версии 3.7: Добавлен параметр preferred, доступный только по ключевому слову.
Предопределено несколько типов браузеров. В этой таблице указаны имена типов, которые можно передать функции get(), и соответствующие экземпляры классов-контроллеров, все они определены в этом модуле.
Имя типа | Имя класса | Примечания |
|---|---|---|
|
| |
|
| |
|
| |
|
| (1) |
|
| (1) |
|
| (1) |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| (2) |
|
| (3) |
|
| (3) |
|
| |
|
| |
|
| |
|
|
Примечания:
- «Konqueror» — файловый менеджер для среды рабочего стола KDE в Unix; его имеет смысл использовать, только если запущена KDE. Было бы полезно иметь надёжный способ обнаружения KDE; переменной
KDEDIRдля этого недостаточно. Обратите также внимание, что имя «kfm» используется даже при запуске команды konqueror в KDE 2 — реализация выбирает наилучший способ запуска Konqueror. - Только на платформах Windows.
- Только на платформе macOS.
Добавлено в версии 3.3: Добавлена поддержка Chrome/Chromium.
Изменено в версии 3.12: Удалена поддержка нескольких устаревших браузеров. К удалённым браузерам относятся Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape и версии Firefox 35 и ниже.
Устарело начиная с версии 3.11, будет удалено в версии 3.13: MacOSX устарел; используйте вместо него MacOSXOSAScript.
Вот несколько простых примеров:
url = 'https://docs.python.org/' # 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)
Объекты контроллера браузера
Контроллеры браузеров предоставляют следующие методы, соответствующие трём функциям модуля:
-
webbrowser.name -
Зависимое от системы имя браузера.
-
controller.open(url, new=0, autoraise=True) -
Отображает url с помощью браузера, обслуживаемого этим контроллером. Если new равно 1, по возможности открывается новое окно браузера. Если new равно 2, по возможности открывается новая страница браузера («вкладка»).
-
controller.open_new(url) -
По возможности открывает url в новом окне браузера, обслуживаемого этим контроллером; в противном случае открывает url в единственном окне браузера. Псевдоним
open_new().
-
controller.open_new_tab(url) -
По возможности открывает url на новой странице («вкладке») браузера, обслуживаемого этим контроллером; в противном случае действует так же, как
open_new().
Сноски
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/webbrowser.html