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

webbrowser.md

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

1> **Источник:** https://python-all.ru/3/library/webbrowser.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `webbrowser` – Удобный контроллер веб-браузера89**Исходный код:** [Lib/webbrowser.py](https://python-all.ru/src/3.14/Lib/webbrowser.py)1011---1213Модуль `webbrowser` предоставляет высокоуровневый интерфейс для отображения пользователям веб-документов. В большинстве случаев для этого достаточно просто вызвать функцию [`open()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.open) из этого модуля.1415В Unix под X11 предпочтение отдаётся графическим браузерам, но если они недоступны или отсутствует X11-дисплей, будут использоваться текстовые браузеры. При использовании текстовых браузеров вызывающий процесс будет заблокирован до тех пор, пока пользователь не закроет браузер.1617Если переменная окружения `BROWSER` существует, она интерпретируется как список браузеров, разделённых [`os.pathsep`](https://python-all.ru/3/library/os.html#os.pathsep), которые следует попробовать перед платформенными значениями по умолчанию. Если значение части списка содержит строку `%s`, то оно интерпретируется как буквальная командная строка браузера, в которой аргумент URL подставляется вместо `%s`; если значение представляет собой одно слово, ссылающееся на один из уже зарегистрированных браузеров, этот браузер добавляется в начало списка поиска; если часть не содержит `%s`, она просто интерпретируется как имя запускаемого браузера. [\[1\]](https://python-all.ru/3/library/webbrowser.html#id2)1819Изменено в версии 3.14: Переменная `BROWSER` теперь также может использоваться для изменения порядка списка платформенных значений по умолчанию. Это особенно полезно в macOS, где платформенные значения по умолчанию не ссылаются на инструменты командной строки на `PATH`.2021На платформах, отличных от Unix, или когда в Unix доступен удалённый браузер, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удалённому браузеру поддерживать свои собственные окна на дисплее. Если удалённые браузеры недоступны в Unix, управляющий процесс запустит новый браузер и будет ждать.2223В iOS переменная окружения `BROWSER`, а также любые аргументы, управляющие autoraise, предпочтениями браузера и созданием новой вкладки/окна, игнорируются. Веб-страницы будут *всегда* открываться в предпочитаемом пользователем браузере, в новой вкладке, с выводом браузера на передний план. Использование модуля `webbrowser` в iOS требует модуля [`ctypes`](https://python-all.ru/3/library/ctypes.html#module-ctypes). Если `ctypes` недоступен, вызовы [`open()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.open) завершатся ошибкой.2425## Интерфейс командной строки2627Скрипт **webbrowser** может использоваться как интерфейс командной строки для этого модуля. В качестве аргумента он принимает URL. Допустимы следующие необязательные параметры:2829#### `-n, --new-window`3031Открывает URL в новом окне браузера, если это возможно.3233#### `-t, --new-tab`3435Открывает URL в новой вкладке браузера.3637Эти параметры, очевидно, являются взаимоисключающими. Пример использования:3839```bash40python -m webbrowser -t "https://www.python.org"41```4243[Доступность](https://python-all.ru/3/library/intro.html#availability): не WASI, не Android.4445Определено следующее исключение:4647#### `exception webbrowser.Error`4849Исключение, возникающее при ошибке управления браузером.5051Определены следующие функции:5253#### `webbrowser.open(url, new=0, autoraise=True)`5455Отображает *url* с помощью браузера по умолчанию. Если *new* равно 0, *url* открывается в том же окне браузера, если это возможно. Если *new* равно 1, открывается новое окно браузера, если возможно. Если *new* равно 2, открывается новая страница (вкладка) браузера, если возможно. Если *autoraise* равно `True`, окно выводится на передний план, если это возможно (обратите внимание: во многих оконных менеджерах это произойдёт независимо от значения этой переменной).5657Возвращает `True`, если браузер был успешно запущен, и `False` в противном случае.5859Обратите внимание: на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.6061Вызывает [событие аудита](https://python-all.ru/3/library/sys.html#auditing) `webbrowser.open` с аргументом `url`.6263#### `webbrowser.open_new(url)`6465Открывает *url* в новом окне браузера по умолчанию, если это возможно, в противном случае открывает *url* в единственном окне браузера.6667Возвращает `True`, если браузер был успешно запущен, и `False` в противном случае.6869#### `webbrowser.open_new_tab(url)`7071Открывает *url* на новой странице (вкладке) браузера по умолчанию, если это возможно, в противном случае эквивалентно [`open_new()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.open_new).7273Возвращает `True`, если браузер был успешно запущен, и `False` в противном случае.7475#### `webbrowser.get(using=None)`7677Возвращает объект контроллера для типа браузера *using*. Если *using* равно `None`, возвращает контроллер для браузера по умолчанию, подходящего для окружения вызывающей стороны.7879#### `webbrowser.register(name, constructor, instance=None, *, preferred=False)`8081Регистрирует тип браузера *name*. После регистрации типа браузера, [`get()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.get) функция может вернуть контроллер для этого типа. Если *instance* не указан или равен `None`, *constructor* будет вызван без параметров для создания экземпляра при необходимости. Если *instance* указан, *constructor* никогда не будет вызван и может быть `None`.8283Установка *preferred* в `True` делает этот браузер предпочтительным результатом для вызова [`get()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.get) без аргументов. В противном случае эта точка входа полезна только если планируется установить переменную `BROWSER` или вызвать `get()` с непустым аргументом, совпадающим с именем объявленного обработчика.8485Изменено в версии 3.7: добавлен параметр *preferred*, указываемый только по ключевому слову.8687Предопределён ряд типов браузеров. В таблице приведены имена типов, которые можно передать функции [`get()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.get), и соответствующие экземпляры классов контроллеров, определённые в этом модуле.8889| Имя типа | Имя класса | Примечания |90| --- | --- | --- |91| `'mozilla'` | `Mozilla('mozilla')` |  |92| `'firefox'` | `Mozilla('mozilla')` |  |93| `'epiphany'` | `Epiphany('epiphany')` |  |94| `'kfmclient'` | `Konqueror()` | (1) |95| `'konqueror'` | `Konqueror()` | (1) |96| `'kfm'` | `Konqueror()` | (1) |97| `'opera'` | `Opera()` |  |98| `'links'` | `GenericBrowser('links')` |  |99| `'elinks'` | `Elinks('elinks')` |  |100| `'lynx'` | `GenericBrowser('lynx')` |  |101| `'w3m'` | `GenericBrowser('w3m')` |  |102| `'windows-default'` | `WindowsDefault` | (2) |103| `'macosx'` | `MacOSXOSAScript('default')` | (3) |104| `'safari'` | `MacOSXOSAScript('safari')` | (3) |105| `'google-chrome'` | `Chrome('google-chrome')` |  |106| `'chrome'` | `Chrome('chrome')` |  |107| `'chromium'` | `Chromium('chromium')` |  |108| `'chromium-browser'` | `Chromium('chromium-browser')` |  |109| `'iosbrowser'` | `IOSBrowser` | (4) |110111Примечания:1121131. «Konqueror» – файловый менеджер для среды рабочего стола KDE в Unix, и имеет смысл использовать его только если KDE запущен. Было бы неплохо иметь надёжный способ обнаружения KDE; переменная `KDEDIR` для этого не подходит. Также обратите внимание, что имя «kfm» используется даже при использовании команды **konqueror** с KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.1142. Только на платформах Windows.1153. Только на macOS.1164. Только на iOS.117118Добавлено в версии 3.2: Добавлен новый класс `MacOSXOSAScript`, который используется на Mac вместо прежнего класса `MacOSX`. Это добавляет поддержку открытия браузеров, не установленных в качестве системного по умолчанию.119120Добавлено в версии 3.3: Добавлена поддержка Chrome/Chromium.121122Изменено в версии 3.12: Удалена поддержка нескольких устаревших браузеров. Удалённые браузеры включают Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape и Firefox версии 35 и ниже.123124Изменено в версии 3.13: Добавлена поддержка iOS.125126Вот несколько простых примеров:127128```python129url = 'https://docs.python.org/'130131# Открыть URL в новой вкладке, если окно браузера уже открыто.132webbrowser.open_new_tab(url)133134# Открыть URL в новом окне, по возможности поднимая окно на передний план.135webbrowser.open_new(url)136```137138## Объекты контроллеров браузера139140Контроллеры браузера предоставляют атрибут [`name`](https://python-all.ru/3/library/webbrowser.html#webbrowser.controller.name), и следующие три метода, соответствующие функциям удобства уровня модуля:141142#### `controller.name`143144Системно-зависимое имя браузера.145146#### `controller.open(url, new=0, autoraise=True)`147148Отображает *url* с использованием браузера, управляемого этим контроллером. Если *new* равно 1, открывается новое окно браузера, если это возможно. Если *new* равно 2, открывается новая страница браузера («вкладка»), если это возможно.149150#### `controller.open_new(url)`151152Открывает *url* в новом окне браузера, управляемого этим контроллером, если это возможно; в противном случае открывает *url* в единственном окне браузера. Синоним [`open_new()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.open_new).153154#### `controller.open_new_tab(url)`155156Открывает *url* на новой странице («вкладке») браузера, управляемого этим контроллером, если это возможно; в противном случае эквивалентно [`open_new()`](https://python-all.ru/3/library/webbrowser.html#webbrowser.open_new).157158Сноски159160\[[1](https://python-all.ru/3/library/webbrowser.html#id1)\]161162Исполняемые файлы, указанные здесь без полного пути, будут найдены в каталогах, заданных переменной окружения `PATH`.163