Документация Python неофициальный перевод
Содержание страницы

webbrowser – Удобный контроллер веб-браузераwebbrowser – Convenient Web-browser controller

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

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

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

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

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

Определено следующее исключение:

exception webbrowser.Error
Исключение, возникающее при ошибке управления браузером.

Определены следующие функции:

webbrowser.open(url[, new=0[, autoraise=1]])
Отображает url, используя браузер по умолчанию. Если new равно 0, url открывается в том же окне браузера, если это возможно. Если new равно 1, открывается новое окно браузера, если это возможно. Если new равно 2, открывается новая вкладка браузера («tab»), если это возможно. Если autoraise истинно, окно выводится на передний план, если это возможно (обратите внимание, что многие менеджеры окон делают это независимо от значения этой переменной).
webbrowser.open_new(url)
Открывает url в новом окне браузера по умолчанию, если это возможно, в противном случае открывает url в единственном окне браузера.
webbrowser.open_new_tab(url)
Открывает url на новой странице («вкладке») браузера по умолчанию, если возможно; в противном случае эквивалентно open_new().
webbrowser.get([name])
Возвращает объект контроллера для типа браузера name. Если name пуст, возвращает контроллер для браузера по умолчанию, подходящего для окружения вызывающего кода.
webbrowser.register(name, constructor[, instance])

Регистрирует тип браузера 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)
'internet-config' InternetConfig (3)
'macosx' MacOSX('default') (4)

Примечания:

  1. «Konqueror» – это файловый менеджер для окружения рабочего стола KDE в Unix, и его имеет смысл использовать только при работающем KDE. Было бы неплохо иметь надёжный способ обнаружения KDE; переменная KDEDIR для этого недостаточна. Обратите также внимание, что имя «kfm» используется даже при запуске команды konqueror с KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.
  2. Только на платформах Windows.
  3. Только на платформах Mac OS; требуется стандартный модуль MacPython ic.
  4. Только на платформе Mac OS X.

Вот несколько простых примеров:

url = 'http://www.python.org'

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

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

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

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

controller.open(url[, new[, autoraise=1]])
Отображает url с использованием браузера, управляемого этим контроллером. Если new равно 1, открывается новое окно браузера, если это возможно. Если new равно 2, открывается новая страница браузера («вкладка»), если это возможно.
controller.open_new(url)
Открывает url в новом окне браузера, управляемого этим контроллером, если это возможно; в противном случае открывает url в единственном окне браузера. Псевдоним open_new().
controller.open_new_tab(url)
Открывает url на новой странице (вкладке) браузера, управляемого этим контроллером, если это возможно; в противном случае эквивалентно open_new().