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

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

Исходный код: 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/'

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

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

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

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

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.