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

webbrowser.md

174 строк · 11.5 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.1/library/webbrowser.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 20.1. `webbrowser` – Удобный контроллер веб-браузера89Модуль `webbrowser` предоставляет высокоуровневый интерфейс для отображения веб-документов пользователям. В большинстве случаев достаточно просто вызвать функцию [`open()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.open) из этого модуля, и всё будет работать правильно.1011В Unix под X11 предпочтение отдаётся графическим браузерам, но если они недоступны или отсутствует X11-дисплей, будут использоваться текстовые браузеры. При использовании текстовых браузеров вызывающий процесс будет заблокирован до тех пор, пока пользователь не закроет браузер.1213Если переменная окружения **BROWSER** существует, она интерпретируется как список браузеров для последовательного перебора, разделённый [`os.pathsep`](https://python-all.ru/3.1/library/os.html#os.pathsep), который заменяет стандартный список браузеров платформы. Если значение части списка содержит строку `%s`, она интерпретируется как буквальная командная строка браузера, в которой аргумент URL подставляется вместо `%s`; если часть не содержит `%s`, она просто считается именем запускаемого браузера. [\[1\]](https://python-all.ru/3.1/library/webbrowser.html#id2)1415На платформах, отличных от Unix, или когда в Unix доступен удалённый браузер, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удалённому браузеру поддерживать свои собственные окна на дисплее. Если удалённые браузеры недоступны в Unix, управляющий процесс запустит новый браузер и будет ждать.1617Скрипт **webbrowser** можно использовать как интерфейс командной строки для модуля. Он принимает URL в качестве аргумента. Также он принимает следующие необязательные параметры: `-n` – открывает URL в новом окне браузера, если это возможно; `-t` – открывает URL на новой странице браузера («вкладка»). Эти опции, естественно, взаимно исключают друг друга.1819Определено следующее исключение:2021#### `exception webbrowser.Error`2223Исключение, возникающее при ошибке управления браузером.2425Определены следующие функции:2627#### `webbrowser.open(url, new=0, autoraise=True)`2829Отображает *url* в браузере по умолчанию. Если *new* равно 0, *url* открывается в том же окне браузера, если возможно. Если *new* равно 1, открывается новое окно браузера, если возможно. Если *new* равно 2, открывается новая страница браузера («вкладка»), если возможно. Если *autoraise* равно `True`, окно выводится на передний план, если возможно (обратите внимание, что во многих оконных менеджерах это произойдёт независимо от значения этой переменной).3031Обратите внимание: на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.3233#### `webbrowser.open_new(url)`3435Открывает3637*url*3839в новом окне браузера по умолчанию, если это возможно, в противном случае открывает4041*url*4243в единственном окне браузера.4445#### `webbrowser.open_new_tab(url)`4647Открывает4849*url*5051на новой странице («вкладке») браузера по умолчанию, если возможно; в противном случае эквивалентно5253[`open_new()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.open_new)5455.5657#### `webbrowser.get(using=None)`5859Возвращает объект контроллера для типа браузера6061*using*6263. Если6465*using*6667равно6869`None`7071, возвращает контроллер для браузера по умолчанию, соответствующего окружению вызывающего.7273#### `webbrowser.register(name, constructor, instance=None)`7475Регистрирует тип браузера *name*. После регистрации типа браузера функция [`get()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.get) может возвращать контроллер для этого типа. Если *instance* не указан или равен `None`, *constructor* будет вызван без параметров для создания экземпляра при необходимости. Если *instance* указан, *constructor* никогда не будет вызван и может быть `None`.7677Эта точка входа полезна только если предполагается либо установить переменную **BROWSER**, либо вызвать [`get()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.get) с непустым аргументом, соответствующим имени объявленного обработчика.7879Ряд типов браузеров предопределены. В этой таблице приведены имена типов, которые могут быть переданы функции [`get()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.get), и соответствующие экземпляры классов контроллеров, все определённые в этом модуле.8081| Имя типа | Имя класса | Примечания |82| --- | --- | --- |83| `'mozilla'` | `Mozilla('mozilla')` |  |84| `'firefox'` | `Mozilla('mozilla')` |  |85| `'netscape'` | `Mozilla('netscape')` |  |86| `'galeon'` | `Galeon('galeon')` |  |87| `'epiphany'` | `Galeon('epiphany')` |  |88| `'skipstone'` | `BackgroundBrowser('skipstone')` |  |89| `'kfmclient'` | `Konqueror()` | (1) |90| `'konqueror'` | `Konqueror()` | (1) |91| `'kfm'` | `Konqueror()` | (1) |92| `'mosaic'` | `BackgroundBrowser('mosaic')` |  |93| `'opera'` | `Opera()` |  |94| `'grail'` | `Grail()` |  |95| `'links'` | `GenericBrowser('links')` |  |96| `'elinks'` | `Elinks('elinks')` |  |97| `'lynx'` | `GenericBrowser('lynx')` |  |98| `'w3m'` | `GenericBrowser('w3m')` |  |99| `'windows-default'` | `WindowsDefault` | (2) |100| `'internet-config'` | `InternetConfig` | (3) |101| `'macosx'` | `MacOSX('default')` | (4) |102103Примечания:1041051. «Konqueror» – это файловый менеджер для окружения рабочего стола KDE в Unix, и его имеет смысл использовать только при работающем KDE. Было бы неплохо иметь надёжный способ обнаружения KDE; переменная **KDEDIR** для этого недостаточна. Обратите также внимание, что имя «kfm» используется даже при запуске команды **konqueror** с KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.1062. Только на платформах Windows.1073. Только на платформах Mac OS; требуется стандартный модуль MacPython `ic`.1084. Только на платформе Mac OS X.109110Вот несколько простых примеров:111112```python113url = 'http://www.python.org/'114115# Открыть URL в новой вкладке, если окно браузера уже открыто.116webbrowser.open_new_tab(url + 'doc/')117118# Открыть URL в новом окне, по возможности поднимая окно на передний план.119webbrowser.open_new(url)120```121122## 20.1.1. Объекты контроллера браузера123124Контроллеры браузера предоставляют методы, соответствующие трём вспомогательным функциям уровня модуля:125126#### `controller.open(url, new=0, autoraise=True)`127128Отображает129130*url*131132с использованием браузера, управляемого этим контроллером. Если133134*new*135136равно 1, открывается новое окно браузера, если это возможно. Если137138*new*139140равно 2, открывается новая страница браузера («вкладка»), если это возможно.141142#### `controller.open_new(url)`143144Открывает145146*url*147148в новом окне браузера, управляемого этим контроллером, если это возможно; в противном случае открывает149150*url*151152в единственном окне браузера. Псевдоним153154[`open_new()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.open_new)155156.157158#### `controller.open_new_tab(url)`159160Открывает161162*url*163164на новой странице (вкладке) браузера, управляемого этим контроллером, если это возможно; в противном случае эквивалентно165166[`open_new()`](https://python-all.ru/3.1/library/webbrowser.html#webbrowser.open_new)167168.169170Сноски171172| [\[1\]](https://python-all.ru/3.1/library/webbrowser.html#id1) | Исполняемые файлы, указанные здесь без полного пути, будут искаться в каталогах, заданных в переменной окружения **PATH**. |173| --- | --- |174