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, *, 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/webbrowser.html