webbrowser — Удобный контроллер веб-браузера
Исходный код: Lib/webbrowser.py
Модуль webbrowser предоставляет высокоуровневый интерфейс для отображения веб-документов пользователю. В большинстве случаев, просто вызов функции open() из этого модуля сделает всё правильно.
В Unix графические браузеры предпочтительны под X11, но будут использоваться браузеры текстового режима, если графические браузеры недоступны или дисплей X11 отсутствует. Если используются браузеры текстового режима, вызывающий процесс будет заблокирован до выхода пользователя из браузера.
Если переменная среды BROWSER существует, она интерпретируется как список браузеров, разделённых через os.pathsep, которые необходимо попробовать перед использованием платформных значений по умолчанию. Если значение части списка содержит строку %s, она интерпретируется как буквальная командная строка браузера, в которой аргумент URL подставляется вместо %s; если часть не содержит %s, она просто интерпретируется как имя браузера для запуска.
Для платформ, отличных от Unix, или когда доступен удалённый браузер в Unix, контролирующий процесс не будет ждать завершения работы пользователя с браузером, а позволит удалённому браузеру поддерживать собственные окна на экране. Если удалённые браузеры недоступны в Unix, контролирующий процесс запустит новый браузер и будет ждать.
Скрипт webbrowser может использоваться как командная строка для модуля. Он принимает URL в качестве аргумента. Он принимает следующие необязательные параметры: -n открывает URL в новом окне браузера, если это возможно; -t открывает URL на новой странице браузера («вкладка»). Опции, естественно, взаимоисключающие. Пример использования:
python -m webbrowser -t "http://www.python.org"
Определяется следующая исключительная ситуация:
-
exception webbrowser.Error -
Исключение, генерируемое при возникновении ошибки управления браузером.
Определены следующие функции:
-
webbrowser.open(url, new=0, autoraise=True) -
Отобразить url с помощью браузера по умолчанию. Если new равно 0, url открывается в том же окне браузера, если это возможно. Если new равно 1, открывается новое окно браузера, если это возможно. Если new равно 2, открывается новая страница браузера («вкладка»), если это возможно. Если autoraise равно
True, окно поднимается, если это возможно (обратите внимание, что во многих менеджерах окон это произойдёт независимо от значения этой переменной).Обратите внимание, что на некоторых платформах попытка открыть файл с использованием этой функции может работать и запускать связанную программу операционной системы. Однако это не поддерживается и не является переносимым.
-
webbrowser.open_new(url) -
Открыть url в новом окне браузера по умолчанию, если возможно, в противном случае открыть url в единственном окне браузера.
-
webbrowser.open_new_tab(url) -
Открыть url на новой странице («вкладке») браузера по умолчанию, если это возможно, в противном случае эквивалентно
open_new().
-
webbrowser.get(using=None) -
Возвращает объект контроллера для типа браузера using. Если using равно
None, возвращает контроллер для браузера по умолчанию, соответствующего среде вызывающего.
-
webbrowser.register(name, constructor, instance=None) -
Регистрирует тип браузера name. После регистрации типа браузера функция
get()может вернуть контроллер для этого типа браузера. Если instance не предоставлен или равенNone, constructor будет вызван без параметров для создания экземпляра при необходимости. Если instance предоставлен, constructor никогда не будет вызван и может бытьNone.Эта точка входа полезна только в том случае, если вы планируете установить переменную
BROWSERили вызватьget()с ненулевым аргументом, соответствующим имени обработчика, который вы объявляете.
Несколько типов браузеров предварительно определены. В этой таблице указаны имена типов, которые могут передаваться функции get(), и соответствующие им инстанциации для классов контроллеров, все они определены в этом модуле.
Имя типа | Имя класса | Примечания |
|---|---|---|
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| (1) |
|
| (1) |
|
| (1) |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| (2) |
|
| (3) |
|
| (3) |
|
| |
|
| |
|
| |
|
|
Примечания:
- “Konqueror” — это менеджер файлов для среды рабочего стола KDE в Unix, и его использование имеет смысл только при работе KDE. Необходим надёжный способ обнаружения KDE; переменная
KDEDIRнедостаточна. Также обратите внимание, что имя «kfm» используется даже при использовании команды konqueror с KDE 2 — реализация выбирает лучшую стратегию для запуска Konqueror. - Только на платформах Windows.
- Только на платформе Mac OS X.
Добавлено в версии 3.3: Добавлена поддержка Chrome/Chromium.
Вот несколько простых примеров:
url = 'http://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)
21.1.1. Объекты контроллеров браузера
Контроллеры браузера предоставляют эти методы, которые параллельны трём функциям удобства на уровне модуля:
-
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().
Примечания
-
1 -
Исполнимые файлы, указанные здесь без полного пути, будут искаться в каталогах, указанных в переменной среды
PATH.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/webbrowser.html