webbrowser.md
1> **Источник:** https://python-all.ru/3.11/library/webbrowser.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`webbrowser`](https://python-all.ru/3.11/library/webbrowser.html#module-webbrowser) – Удобный контроллер веб-браузера89**Исходный код:** [Lib/webbrowser.py](https://python-all.ru/src/3.11/Lib/webbrowser.py)1011---1213Модуль [`webbrowser`](https://python-all.ru/3.11/library/webbrowser.html#module-webbrowser) предоставляет высокоуровневый интерфейс для отображения пользователям веб-документов. В большинстве случаев для этого достаточно просто вызвать функцию [`open()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.open) из этого модуля.1415В Unix под X11 предпочтение отдаётся графическим браузерам, но если они недоступны или отсутствует X11-дисплей, будут использоваться текстовые браузеры. При использовании текстовых браузеров вызывающий процесс будет заблокирован до тех пор, пока пользователь не закроет браузер.1617Если существует переменная окружения `BROWSER`, она интерпретируется как разделённый [`os.pathsep`](https://python-all.ru/3.11/library/os.html#os.pathsep) список браузеров для перебора перед платформенными умолчаниями. Если значение части списка содержит строку `%s`, то она интерпретируется как буквальная командная строка браузера, в которой URL-аргумент подставляется вместо `%s`; если часть не содержит `%s`, она просто интерпретируется как имя запускаемого браузера. [\[1\]](https://python-all.ru/3.11/library/webbrowser.html#id2)1819На платформах, отличных от Unix, или когда в Unix доступен удалённый браузер, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удалённому браузеру поддерживать свои собственные окна на дисплее. Если удалённые браузеры недоступны в Unix, управляющий процесс запустит новый браузер и будет ждать.2021Скрипт **webbrowser** можно использовать как интерфейс командной строки для модуля. Он принимает URL в качестве аргумента. Также принимает следующие необязательные параметры: `-n` открывает URL в новом окне браузера, если возможно; `-t` открывает URL на новой странице браузера (“вкладка”). Параметры, естественно, являются взаимоисключающими. Пример использования:2223```python24python -m webbrowser -t "https://www.python.org"25```2627[Доступность](https://python-all.ru/3.11/library/intro.html#availability): not Emscripten, not WASI.2829Этот модуль не работает или недоступен на платформах WebAssembly `wasm32-emscripten` и `wasm32-wasi`. См. [платформы WebAssembly](https://python-all.ru/3.11/library/intro.html#wasm-availability) для получения дополнительной информации.3031Определено следующее исключение:3233#### `exception webbrowser.Error`3435Исключение, возникающее при ошибке управления браузером.3637Определены следующие функции:3839#### `webbrowser.open(url, new=0, autoraise=True)`4041Отображает *url* с помощью браузера по умолчанию. Если *new* равно 0, *url* открывается в том же окне браузера, если это возможно. Если *new* равно 1, открывается новое окно браузера, если возможно. Если *new* равно 2, открывается новая страница (вкладка) браузера, если возможно. Если *autoraise* равно `True`, окно выводится на передний план, если это возможно (обратите внимание: во многих оконных менеджерах это произойдёт независимо от значения этой переменной).4243Обратите внимание: на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.4445Вызывает [событие аудита](https://python-all.ru/3.11/library/sys.html#auditing) `webbrowser.open` с аргументом `url`.4647#### `webbrowser.open_new(url)`4849Открывает *url* в новом окне браузера по умолчанию, если это возможно, в противном случае открывает *url* в единственном окне браузера.5051#### `webbrowser.open_new_tab(url)`5253Открывает *url* на новой странице (вкладке) браузера по умолчанию, если это возможно, в противном случае эквивалентно [`open_new()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.open_new).5455#### `webbrowser.get(using=None)`5657Возвращает объект контроллера для типа браузера *using*. Если *using* равно `None`, возвращает контроллер для браузера по умолчанию, подходящего для окружения вызывающей стороны.5859#### `webbrowser.register(name, constructor, instance=None, *, preferred=False)`6061Регистрирует тип браузера *name*. После регистрации типа браузера, [`get()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.get) функция может вернуть контроллер для этого типа. Если *instance* не указан или равен `None`, *constructor* будет вызван без параметров для создания экземпляра при необходимости. Если *instance* указан, *constructor* никогда не будет вызван и может быть `None`.6263Установка *preferred* в `True` делает этот браузер предпочтительным результатом для вызова [`get()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.get) без аргументов. В противном случае эта точка входа полезна только если планируется установить переменную `BROWSER` или вызвать [`get()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.get) с непустым аргументом, совпадающим с именем объявленного обработчика.6465Изменено в версии 3.7: добавлен параметр *preferred*, указываемый только по ключевому слову.6667Предопределён ряд типов браузеров. В таблице приведены имена типов, которые можно передать функции [`get()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.get), и соответствующие экземпляры классов контроллеров, определённые в этом модуле.6869| Имя типа | Имя класса | Примечания |70| --- | --- | --- |71| `'mozilla'` | `Mozilla('mozilla')` | |72| `'firefox'` | `Mozilla('mozilla')` | |73| `'netscape'` | `Mozilla('netscape')` | |74| `'galeon'` | `Galeon('galeon')` | |75| `'epiphany'` | `Galeon('epiphany')` | |76| `'skipstone'` | `BackgroundBrowser('skipstone')` | |77| `'kfmclient'` | `Konqueror()` | (1) |78| `'konqueror'` | `Konqueror()` | (1) |79| `'kfm'` | `Konqueror()` | (1) |80| `'mosaic'` | `BackgroundBrowser('mosaic')` | |81| `'opera'` | `Opera()` | |82| `'grail'` | `Grail()` | |83| `'links'` | `GenericBrowser('links')` | |84| `'elinks'` | `Elinks('elinks')` | |85| `'lynx'` | `GenericBrowser('lynx')` | |86| `'w3m'` | `GenericBrowser('w3m')` | |87| `'windows-default'` | `WindowsDefault` | (2) |88| `'macosx'` | `MacOSXOSAScript('default')` | (3) |89| `'safari'` | `MacOSXOSAScript('safari')` | (3) |90| `'google-chrome'` | `Chrome('google-chrome')` | |91| `'chrome'` | `Chrome('chrome')` | |92| `'chromium'` | `Chromium('chromium')` | |93| `'chromium-browser'` | `Chromium('chromium-browser')` | |9495Примечания:96971. “Konqueror” – это файловый менеджер для среды рабочего стола KDE в Unix, и имеет смысл использовать его, только если KDE запущен. Хорошо бы иметь надёжный способ обнаружения KDE; переменная `KDEDIR` недостаточна. Также обратите внимание, что имя “kfm” используется даже при использовании команды **konqueror** с KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.982. Только на платформах Windows.993. Только на платформе macOS.100101Новое в версии 3.3: Добавлена поддержка Chrome/Chromium.102103Устарело с версии 3.11, будет удалено в версии 3.13: `MacOSX` устарело, вместо него используйте `MacOSXOSAScript`.104105Вот несколько простых примеров:106107```python108url = 'https://docs.python.org/'109110# Открыть URL в новой вкладке, если окно браузера уже открыто.111webbrowser.open_new_tab(url)112113# Открыть URL в новом окне, по возможности поднимая окно на передний план.114webbrowser.open_new(url)115```116117## Объекты контроллера браузера118119Контроллеры браузера предоставляют методы, соответствующие трём вспомогательным функциям уровня модуля:120121#### `webbrowser.name`122123Системно-зависимое имя браузера.124125#### `controller.open(url, new=0, autoraise=True)`126127Отображает *url* с использованием браузера, управляемого этим контроллером. Если *new* равно 1, открывается новое окно браузера, если это возможно. Если *new* равно 2, открывается новая страница браузера («вкладка»), если это возможно.128129#### `controller.open_new(url)`130131Открывает *url* в новом окне браузера, управляемого этим контроллером, если это возможно; в противном случае открывает *url* в единственном окне браузера. Синоним [`open_new()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.open_new).132133#### `controller.open_new_tab(url)`134135Открывает *url* на новой странице («вкладке») браузера, управляемого этим контроллером, если это возможно; в противном случае эквивалентно [`open_new()`](https://python-all.ru/3.11/library/webbrowser.html#webbrowser.open_new).136137Сноски138139\[[1](https://python-all.ru/3.11/library/webbrowser.html#id1)\]140141Исполняемые файлы, указанные здесь без полного пути, будут найдены в каталогах, заданных переменной окружения `PATH`.142