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

webbrowser.md

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

1> **Источник:** https://python-all.ru/3.2/library/webbrowser.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 20.1. [`webbrowser`](https://python-all.ru/3.2/library/webbrowser.html#module-webbrowser) – Удобный контроллер веб-браузера89**Исходный код:** [Lib/webbrowser.py](https://python-all.ru/src/3.2/Lib/webbrowser.py)1011---1213Модуль [`webbrowser`](https://python-all.ru/3.2/library/webbrowser.html#module-webbrowser) предоставляет высокоуровневый интерфейс для отображения веб-документов пользователям. В большинстве случаев достаточно просто вызвать функцию [`open()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.open) из этого модуля.1415В Unix под X11 предпочтение отдаётся графическим браузерам, но если они недоступны или отсутствует X11-дисплей, будут использоваться текстовые браузеры. При использовании текстовых браузеров вызывающий процесс будет заблокирован до тех пор, пока пользователь не закроет браузер.1617Если переменная окружения `BROWSER` существует, она интерпретируется как переопределение списка браузеров по умолчанию для платформы, в виде списка браузеров для последовательного опробования, разделённого [`os.pathsep`](https://python-all.ru/3.2/library/os.html#os.pathsep). Когда часть списка содержит строку `%s`, она интерпретируется как буквальная командная строка браузера, используемая с аргументом URL, подставляемым вместо `%s`; если часть не содержит `%s`, она просто интерпретируется как имя запускаемого браузера. [\[1\]](https://python-all.ru/3.2/library/webbrowser.html#id2)1819На платформах, отличных от Unix, или когда в Unix доступен удалённый браузер, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удалённому браузеру поддерживать свои собственные окна на дисплее. Если удалённые браузеры недоступны в Unix, управляющий процесс запустит новый браузер и будет ждать.2021Скрипт **webbrowser** можно использовать как интерфейс командной строки для этого модуля. Он принимает URL в качестве аргумента. Он принимает следующие необязательные параметры: `-n` открывает URL в новом окне браузера, если возможно; `-t` открывает URL в новой странице браузера («вкладке»). Параметры, естественно, взаимоисключающие. Пример использования:2223```python24python -m webbrowser -t "http://www.python.org"25```2627Определено следующее исключение:2829#### `exception webbrowser.Error`3031Исключение, возникающее при ошибке управления браузером.3233Определены следующие функции:3435#### `webbrowser.open(url, new=0, autoraise=True)`3637Отображает *url* в браузере по умолчанию. Если *new* равно 0, *url* открывается в том же окне браузера, если возможно. Если *new* равно 1, открывается новое окно браузера, если возможно. Если *new* равно 2, открывается новая страница браузера («вкладка»), если возможно. Если *autoraise* равно `True`, окно выводится на передний план, если возможно (обратите внимание, что во многих оконных менеджерах это произойдёт независимо от значения этой переменной).3839Обратите внимание: на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить связанную программу операционной системы. Однако это не поддерживается и не является переносимым.4041#### `webbrowser.open_new(url)`4243Открывает *url* в новом окне браузера по умолчанию, если это возможно, в противном случае открывает *url* в единственном окне браузера.4445#### `webbrowser.open_new_tab(url)`4647Открывает *url* на новой странице («вкладке») браузера по умолчанию, если возможно; в противном случае эквивалентно [`open_new()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.open_new).4849#### `webbrowser.get(using=None)`5051Возвращает объект контроллера для типа браузера *using*. Если *using* равно `None`, возвращает контроллер для браузера по умолчанию, соответствующего окружению вызывающего.5253#### `webbrowser.register(name, constructor, instance=None)`5455Регистрирует тип браузера *name*. После регистрации типа браузера функция [`get()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.get) может возвращать контроллер для этого типа. Если *instance* не указан или равен `None`, *constructor* будет вызван без параметров для создания экземпляра при необходимости. Если *instance* указан, *constructor* никогда не будет вызван и может быть `None`.5657Эта точка входа полезна только в том случае, если планируется либо установить переменную `BROWSER`, либо вызвать [`get()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.get) с непустым аргументом, соответствующим имени объявленного обработчика.5859Ряд типов браузеров предопределены. В этой таблице приведены имена типов, которые могут быть переданы функции [`get()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.get), и соответствующие экземпляры классов контроллеров, все определённые в этом модуле.6061| Имя типа | Имя класса | Примечания |62| --- | --- | --- |63| `'mozilla'` | `Mozilla('mozilla')` |  |64| `'firefox'` | `Mozilla('mozilla')` |  |65| `'netscape'` | `Mozilla('netscape')` |  |66| `'galeon'` | `Galeon('galeon')` |  |67| `'epiphany'` | `Galeon('epiphany')` |  |68| `'skipstone'` | `BackgroundBrowser('skipstone')` |  |69| `'kfmclient'` | `Konqueror()` | (1) |70| `'konqueror'` | `Konqueror()` | (1) |71| `'kfm'` | `Konqueror()` | (1) |72| `'mosaic'` | `BackgroundBrowser('mosaic')` |  |73| `'opera'` | `Opera()` |  |74| `'grail'` | `Grail()` |  |75| `'links'` | `GenericBrowser('links')` |  |76| `'elinks'` | `Elinks('elinks')` |  |77| `'lynx'` | `GenericBrowser('lynx')` |  |78| `'w3m'` | `GenericBrowser('w3m')` |  |79| `'windows-default'` | `WindowsDefault` | (2) |80| `'macosx'` | `MacOSX('default')` | (3) |81| `'safari'` | `MacOSX('safari')` | (3) |8283Примечания:84851. «Konqueror» – это файловый менеджер для среды рабочего стола KDE в Unix, и использовать его имеет смысл только при запущенном KDE. Наличие надёжного способа обнаружения KDE было бы полезно; переменной `KDEDIR` для этого недостаточно. Обратите также внимание, что имя «kfm» используется даже при использовании команды **konqueror** в KDE 2 – реализация выбирает наилучшую стратегию для запуска Konqueror.862. Только на платформах Windows.873. Только на платформе Mac OS X.8889Вот несколько простых примеров:9091```python92url = 'http://www.python.org/'9394# Открыть URL в новой вкладке, если окно браузера уже открыто.95webbrowser.open_new_tab(url + 'doc/')9697# Открыть URL в новом окне, по возможности поднимая окно на передний план.98webbrowser.open_new(url)99```100101## 20.1.1. Объекты контроллера браузера102103Контроллеры браузера предоставляют методы, соответствующие трём вспомогательным функциям уровня модуля:104105#### `controller.open(url, new=0, autoraise=True)`106107Отображает *url* с использованием браузера, управляемого этим контроллером. Если *new* равно 1, открывается новое окно браузера, если это возможно. Если *new* равно 2, открывается новая страница браузера («вкладка»), если это возможно.108109#### `controller.open_new(url)`110111Открывает *url* в новом окне браузера, управляемого этим контроллером, если это возможно; в противном случае открывает *url* в единственном окне браузера. Псевдоним [`open_new()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.open_new).112113#### `controller.open_new_tab(url)`114115Открывает *url* на новой странице (вкладке) браузера, управляемого этим контроллером, если это возможно; в противном случае эквивалентно [`open_new()`](https://python-all.ru/3.2/library/webbrowser.html#webbrowser.open_new).116117Сноски118119| [\[1\]](https://python-all.ru/3.2/library/webbrowser.html#id1) | Исполняемые файлы, указанные здесь без полного пути, будут искаться в каталогах, заданных в переменной окружения `PATH`. |120| --- | --- |121