Содержание страницы
20.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, окно выводится на передний план, если это возможно (обратите внимание: во многих оконных менеджерах это произойдёт независимо от значения этой переменной).Обратите внимание: на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.
Изменено в версии 2.5: new теперь может быть 2.
-
webbrowser.open_new(url)¶ Открывает url в новом окне браузера по умолчанию, если это возможно, в противном случае открывает url в единственном окне браузера.
-
webbrowser.open_new_tab(url)¶ Открывает url на новой странице (вкладке) браузера по умолчанию, если это возможно, в противном случае эквивалентно
open_new().Новое в версии 2.5.
-
webbrowser.get([name])¶ Возвращает объект контроллера для типа браузера name. Если name пуст, возвращает контроллер для браузера по умолчанию, подходящего для окружения вызывающего кода.
-
webbrowser.register(name, constructor[, instance])¶ Регистрирует тип браузера name. После регистрации типа браузера,
get()функция может вернуть контроллер для этого типа. Если instance не указан или равенNone, constructor будет вызван без параметров для создания экземпляра при необходимости. Если instance указан, constructor никогда не будет вызван и может бытьNone.Эта точка входа полезна только в случае, если планируется либо установить переменную
BROWSER, либо вызватьget()с непустым аргументом, соответствующим имени объявленного обработчика.
Предопределён ряд типов браузеров. В таблице приведены имена типов, которые
можно передать функции get(), и соответствующие экземпляры
классов контроллеров, определённые в этом модуле.
Имя типа |
Имя класса |
Примечания |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1) |
|
|
(1) |
|
|
(1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
(3) |
|
|
(3) |
|
|
(4) |
|
|
(4) |
|
|
(4) |
|
|
(4) |
Примечания:
“Konqueror” – это файловый менеджер для среды рабочего стола KDE в Unix, и имеет смысл использовать его, только если KDE запущен. Хорошо бы иметь надёжный способ обнаружения KDE; переменная
KDEDIRнедостаточна. Также обратите внимание, что имя “kfm” используется даже при использовании команды konqueror с KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.Только на платформах Windows.
Только на платформе Mac OS X.
Поддержка Chrome/Chromium добавлена в версии 2.7.5.
Вот несколько простых примеров:
url = 'http://www.python.org/'
# Открыть URL в новой вкладке, если окно браузера уже открыто.
webbrowser.open_new_tab(url + 'doc/')
# Открыть URL в новом окне, по возможности поднимая окно на передний план.
webbrowser.open_new(url)
20.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().Новое в версии 2.5.
Сноски
- 1
Исполняемые файлы, указанные здесь без полного пути, будут найдены в каталогах, заданных переменной окружения
PATH.