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"
Availability: это не Emscripten, это был не я.
Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten
и wasm32-wasi
. Дополнительную информацию смотрите в разделе Платформы веб-сборки.
Определено следующее исключение:
- 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)¶
Возвращает объект controller для браузера типа using. Если значение using равно
None
, возвращает контроллер для браузера по умолчанию, соответствующего среде вызывающего устройства.
- webbrowser.register(name, constructor, instance=None, *, preferred=False)¶
Зарегистрируйте тип браузера имя. Как только тип браузера зарегистрирован, функция
get()
может вернуть контроллер для этого типа браузера. Если instance не указан или имеет значениеNone
, constructor будет вызван без параметров для создания экземпляра, когда это необходимо. Если instance указан, constructor никогда не будет вызван и может бытьNone
.Установка предпочтительно на
True
делает этот браузер предпочтительным результатом для вызоваget()
без аргументов. В противном случае эта точка входа полезна только в том случае, если вы планируете либо установить переменнуюBROWSER
, либо вызватьget()
с непустым аргументом, соответствующим имени объявленного вами обработчика.Изменено в версии 3.7: предпочтительный параметр, содержащий только ключевое слово, был добавлен.
Предварительно определено несколько типов браузеров. В этой таблице приведены имена типов, которые могут передаваться в функцию get()
, и соответствующие экземпляры для классов контроллеров, все они определены в этом модуле.
Имя типа |
Название класса |
Записи |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
Записи:
«Konqueror» - это файловый менеджер для среды рабочего стола KDE для Unix, и его имеет смысл использовать, только если запущен KDE. Было бы неплохо найти какой-нибудь способ надежного обнаружения KDE; переменной
KDEDIR
недостаточно. Также обратите внимание, что имя «kfm» используется даже при использовании команды konqueror в KDE 2 — реализация выбирает наилучшую стратегию для запуска Konqueror.Только на платформах Windows.
Только на платформе macOS.
Добавлено в версии 3.3: Добавлена поддержка Chrome/Хром Хромиум.
Утратил актуальность с версии 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()
.
Сноски