webbrowser — Удобный контроллер веб-браузера


Модуль webbrowser обеспечивает интерфейс высокого уровня, позволяющий пользователям просматривать веб-документы. В большинстве случаев, простой вызов функции open() из этого модуля сделает все правильно.

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

Если переменная среды BROWSER существует, она интерпретируется как os.pathsep-separated список браузеров, чтобы попытаться опередить настройки платформы по умолчанию. Если значение части списка содержит строка %s, то она интерпретируется как командная строка браузера литерал для используемый с URL-адресом аргумента, заменяющим %s; если деталь не содержит %s, она просто интерпретируется как имя запускаемого браузера. [1]

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

Скрипт webbrowser может быть используемый в качестве интерфейса командной строки для модуля. В качестве аргумента он принимает URL-адрес. Он принимает следующие необязательные параметры: -n по возможности открывает URL-адрес в новом окне браузера; -t открывает URL-адрес на новой странице браузера («tab»). Варианты, естественно, взаимоисключающие. Пример использования:

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, по возможности открывается новая страница браузера («tab»). Если autoraise True, окно поднимается по возможности (обратите внимание, что во многих оконных менеджерах это происходит независимо от настройки этой переменной).

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

Поднимает событие аудита webbrowser.open с аргументом url.

webbrowser.open_new(url)

Открыть url в новом окне браузера по умолчанию, если это возможно, в противном случае открыть url в единственном окне браузера.

webbrowser.open_new_tab(url)

Открыть url на новой странице («tab») браузера по умолчанию, если это возможно, в противном случае эквивалентно 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(), и соответствующие экземпляры для классов контроллеров, все из которых определены в этом модуле.

Тип имени Имя класса Примечание
'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/'

# Открыть URL в новой вкладке, если окно браузера уже открыто.
webbrowser.open_new_tab(url)

# Открыть URL-адрес в новом окне, если возможно, подняв окно.
webbrowser.open_new(url)

Объекты контроллера браузера

Контроллеры браузера предоставляют следующие методы, которые параллельны трем функциям удобства на уровне модулей:

controller.open(url, new=0, autoraise=True)

Отображение url с помощью браузера, обрабатываемого этим контроллером. Если new равно 1, по возможности открывается новое окно браузера. Если new равно 2, по возможности открывается новая страница браузера («tab»).

controller.open_new(url)

Открыть url в новом окне браузера, обработанном этим контроллером, если это возможно, в противном случае открыть url в единственном окне браузера. Псевдоним open_new().

controller.open_new_tab(url)

Открыть url на новой странице («tab») браузера, обрабатываемой этим контроллером, если это возможно, в противном случае эквивалентно open_new().

Сноски

[1]Исполняемые файлы, названные здесь без полного пути, будут найдены в каталогах, указанных в переменной среды PATH. указанных в переменной среды PATH.