Spec-Zone.ru › Python 3.5

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, окно поднимается, если это возможно (обратите внимание, что во многих менеджерах окон это произойдёт независимо от значения этой переменной).

Обратите внимание, что на некоторых платформах попытка открыть файл с помощью этой функции может сработать и запустить ассоциированную программу операционной системы. Однако это ни поддерживается, ни переносимо.

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(), и соответствующие экземпляры для классов контроллеров, все определенные в этом модуле.

Имя типа Имя класса Примечания
'mozilla' Mozilla('mozilla')
'firefox' Mozilla('mozilla')
'netscape' Mozilla('netscape')
'galeon' Galeon('galeon')
'epiphany' Galeon('epiphany')
'skipstone' BackgroundBrowser('skipstone')
'kfmclient' Konqueror() (1)
'konqueror' Konqueror() (1)
'kfm' Konqueror() (1)
'mosaic' BackgroundBrowser('mosaic')
'opera' Opera()
'grail' Grail()
'links' GenericBrowser('links')
'elinks' Elinks('elinks')
'lynx' GenericBrowser('lynx')
'w3m' GenericBrowser('w3m')
'windows-default' WindowsDefault (2)
'macosx' MacOSX('default') (3)
'safari' MacOSX('safari') (3)
'google-chrome' Chrome('google-chrome')
'chrome' Chrome('chrome')
'chromium' Chromium('chromium')
'chromium-browser' Chromium('chromium-browser')

Примечания:

  1. “Konqueror” — это файловый менеджер для среды рабочего стола KDE в Unix, и имеет смысл использовать только если KDE запущен. Было бы неплохо иметь способ надёжной проверки KDE; переменная KDEDIR недостаточна. Также обратите внимание, что имя “kfm” используется даже при использовании команды konqueror с KDE 2 — реализация выбирает лучшую стратегию для запуска Konqueror.
  2. Только на платформах Windows.
  3. Только на платформе 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)

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.5/library/webbrowser.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API