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 "http://www.python.org"
Определено следующее исключение:
-
exception webbrowser.Error -
Исключение, выбрасываемое при ошибке управления браузером.
Определены следующие функции:
-
webbrowser.open(url, new=0, autoraise=True) -
Отображает url с помощью браузера по умолчанию. Если new равно 0, url открывается в том же окне браузера, если возможно. Если new равно 1, открывается новое окно браузера, если возможно. Если new равно 2, открывается новая страница браузера («вкладка»), если возможно. Если autoraise равно
True, окно поднимается, если возможно (обратите внимание, что во многих менеджерах окон это произойдёт независимо от настройки этой переменной).Обратите внимание, что на некоторых платформах попытка открыть файл с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.
Вызывает событие аудита auditing event
webbrowser.openс аргументомurl.
-
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, *, 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.
- Только на платформе 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)
Объекты-контроллеры браузеров
Объекты-контроллеры браузеров предоставляют эти методы, которые соответствуют трём из функций удобства на уровне модуля:
-
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–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/webbrowser.html