webbrowser — Удобный контроллер веб-браузера
Исходный код: Lib/webbrowser.py
Модуль webbrowser предоставляет интерфейс высокого уровня для отображения веб-документов пользователю. В большинстве случаев, просто вызов функции open() из этого модуля сделает всё правильно.
В Unix-системах графические браузеры предпочтительны в X11, но будут использоваться браузеры текстового режима, если графические браузеры недоступны или нет X11-дисплея. Если используются браузеры текстового режима, вызывающий процесс будет заблокирован до выхода пользователя из браузера.
Если переменная окружения BROWSER существует, она интерпретируется как список браузеров, разделённых os.pathsep, которые будут опробованы перед использованием платформных значений по умолчанию. Когда значение части списка содержит строку %s, она интерпретируется как прямая командная строка браузера, где аргумент URL будет подставлен вместо %s; если часть не содержит %s, она просто интерпретируется как имя браузера для запуска. [1]
Для платформ, отличных от Unix, или когда доступен удалённый браузер в Unix, контролирующий процесс не будет ждать завершения работы пользователя с браузером, а позволит удалённому браузеру поддерживать свои окна на дисплее. Если удалённые браузеры недоступны в Unix, контролирующий процесс запустит новый браузер и будет ждать.
В iOS переменная окружения BROWSER , а также любые аргументы, управляющие параметрами авторайза, предпочтениями браузера и созданием новой вкладки/окна, будут игнорироваться. Веб-страницы всегда будут открываться в предпочтительном браузере пользователя в новой вкладке, с браузером, выведенным на передний план. Использование модуля webbrowser в iOS требует модуля ctypes. Если ctypes недоступен, вызовы open() завершатся с ошибкой.
Сценарий webbrowser может быть использован как командная строка для модуля. Он принимает URL в качестве аргумента. Он принимает следующие необязательные параметры:
-
-n/--new-windowоткрывает URL в новом окне браузера, если это возможно. -
-t/--new-tabоткрывает URL в новой странице браузера (“вкладке”).
Эти параметры, естественно, являются взаимоисключающими. Пример использования:
python -m webbrowser -t "https://www.python.org"
Доступность: не WASI, не Android.
Определено следующее исключение:
-
exception webbrowser.Error -
Исключение, генерируемое при возникновении ошибки управления браузером.
Определены следующие функции:
-
webbrowser.open(url, new=0, autoraise=True) -
Отображение url с помощью браузера по умолчанию. Если new равно 0, url открывается в том же окне браузера, если это возможно. Если new равно 1, открывается новое окно браузера, если это возможно. Если new равно 2, открывается новая страница браузера (“вкладка”), если это возможно. Если autoraise равно
True, окно поднимается, если это возможно (обратите внимание, что во многих менеджерах окон это произойдёт независимо от настроек этой переменной).Возвращает
True, если браузер был успешно запущен,Falseв противном случае.Обратите внимание, что на некоторых платформах попытка открыть файл с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.
Вызывает событие аудита аудита
webbrowser.openс аргументомurl.
-
webbrowser.open_new(url) -
Открывает url в новом окне браузера по умолчанию, если возможно, в противном случае открывает url в единственном окне браузера.
Возвращает
True, если браузер был успешно запущен,Falseв противном случае.
-
webbrowser.open_new_tab(url) -
Открывает url в новой странице (“вкладке”) браузера по умолчанию, если возможно, в противном случае эквивалентно
open_new().Возвращает
True, если браузер был успешно запущен,Falseв противном случае.
-
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(), и соответствующие реализации для классов контроллеров, все определены в этом модуле.
Имя типа | Имя класса | Примечания |
|---|---|---|
|
| |
|
| |
|
| |
|
| (1) |
|
| (1) |
|
| (1) |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| (2) |
|
| (3) |
|
| (3) |
|
| |
|
| |
|
| |
|
| |
|
| (4) |
Примечания:
- “Konqueror” — менеджер файлов для среды рабочего стола KDE в Unix и имеет смысл использовать только если KDE запущен. Было бы неплохо иметь надёжный способ обнаружения KDE; переменная
KDEDIRнедостаточна. Также обратите внимание, что имя “kfm” используется даже при использовании команды konqueror с KDE 2 — реализация выбирает лучшую стратегию для запуска Konqueror. - Только на платформах Windows.
- Только на macOS.
- Только на iOS.
Добавлено в версии 3.2: Добавлен новый класс MacOSXOSAScript, используемый на Mac вместо предыдущего класса MacOSX. Это добавляет поддержку открытия браузеров, которые в данный момент не установлены как браузеры по умолчанию.
Добавлено в версии 3.3: Добавлена поддержка Chrome/Chromium.
Изменено в версии 3.12: Поддержка нескольких устаревших браузеров удалена. Удалённые браузеры включают Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape и версии Firefox 35 и ниже.
Изменено в версии 3.13: Добавлена поддержка iOS.
Вот несколько простых примеров:
url = 'https://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)
Объекты управления браузером
Контроллеры браузера предоставляют следующие методы, аналогичные трём удобным функциям на уровне модуля:
-
controller.name -
Зависимое от системы имя браузера.
-
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().
Примечания
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/webbrowser.html