webbrowser — Удобный контроллер веб-браузера

Исходный код: Lib/webbrowser.py.


Модуль webbrowser предоставляет высокоуровневый интерфейс, позволяющий отображать веб-документы для пользователей. При большинстве обстоятельств простой вызов функции open() из этого модуля сделает то, что нужно.

В Unix графические браузеры предпочтительнее в X11, но браузеры в текстовом режиме будут использоваться, если графические браузеры недоступны или недоступен дисплей X11. Если используются браузеры текстового режима, вызывающий процесс будет блокироваться до тех пор, пока пользователь не выйдет из браузера.

Если существует переменная окружения BROWSER, то она интерпретируется как разделенный os.pathsep список браузеров, которые следует попробовать использовать перед значениями по умолчанию платформы. Если значение части списка содержит строку %s, то она интерпретируется как буквальная командная строка браузера, которая будет использоваться с аргументом URL, замененным на %s; если часть не содержит %s, то она просто интерпретируется как имя браузера для запуска. 1

Для не-Unix платформ, или когда удаленный браузер доступен на Unix, управляющий процесс не будет ждать, пока пользователь закончит работу с браузером, а позволит удаленному браузеру поддерживать свои собственные окна на дисплее. Если удаленные браузеры недоступны на Unix, управляющий процесс запустит новый браузер и будет ждать.

Скрипт webbrowser можно использовать в качестве интерфейса командной строки для модуля. В качестве аргумента он принимает URL. Он принимает следующие необязательные параметры: -n открывает URL в новом окне браузера, если это возможно; -t открывает URL на новой странице браузера («вкладке»). Естественно, эти параметры являются взаимоисключающими. Пример использования:

python -m webbrowser -t "https://www.python.org"

Определено следующее исключение:

exception webbrowser.Error

Исключение, возникающее при возникновении ошибки управления браузером.

Определены следующие функции:

webbrowser.open(url, new=0, autoraise=True)

Отображение url с помощью браузера по умолчанию. Если new равно 0, то url открывается в том же окне браузера, если это возможно. Если new равно 1, открывается новое окно браузера, если это возможно. Если new равно 2, открывается новая страница браузера («вкладка»), если это возможно. Если autoraise равно True, окно поднимается, если это возможно (обратите внимание, что во многих оконных менеджерах это произойдет независимо от установки этой переменной).

Обратите внимание, что на некоторых платформах попытка открыть имя файла с помощью этой функции может сработать и запустить соответствующую программу операционной системы. Однако это не поддерживается и не переносится.

Вызывает auditing event webbrowser.open с аргументом url.

webbrowser.open_new(url)

Откройте url в новом окне браузера по умолчанию, если это возможно, в противном случае откройте url в единственном окне браузера.

webbrowser.open_new_tab(url)

Открыть url на новой странице («вкладке») браузера по умолчанию, если это возможно, иначе эквивалентно open_new().

webbrowser.get(using=None)

Возвращает объект контроллера для типа браузера using. Если using равно None, возвращается контроллер для браузера по умолчанию, соответствующего окружению вызывающей стороны.

webbrowser.register(name, constructor, instance=None, *, preferred=False)

Зарегистрируйте тип браузера имя. После регистрации типа браузера функция get() может вернуть контроллер для этого типа браузера. Если instance не предоставлен или является None, constructor будет вызван без параметров для создания экземпляра, когда это необходимо. Если instance предоставлен, constructor никогда не будет вызван, и может быть None.

Установка preferred в True делает этот браузер предпочтительным результатом для вызова get() без аргумента. В противном случае, эта точка входа полезна только в том случае, если вы планируете либо установить переменную BROWSER, либо вызвать get() с непустым аргументом, совпадающим с именем объявленного вами обработчика.

Изменено в версии 3.7: Добавлен параметр предпочтительный только для ключевого слова.

Ряд типов браузеров предопределен. В этой таблице приведены имена типов, которые могут быть переданы в функцию get() и соответствующие инстанцирования для классов контроллеров, определенных в этом модуле.

Название типа

Название класса

Примечания

'mozilla'

Mozilla('mozilla')

'firefox'

Mozilla('mozilla')

'netscape'

Mozilla('netscape')

'galeon'

Galeon('galeon')

'epiphany'

Galeon('epiphany')

'skipstone'

BackgroundBrowser('skipstone')

'kfmclient'

Konqueror()

(1)

'konqueror'

Konqueror()

(1)

'kfm'

Konqueror()

(1)

'mosaic'

BackgroundBrowser('mosaic')

'opera'

Opera()

'grail'

Grail()

'links'

GenericBrowser('links')

'elinks'

Elinks('elinks')

'lynx'

GenericBrowser('lynx')

'w3m'

GenericBrowser('w3m')

'windows-default'

WindowsDefault

(2)

'macosx'

MacOSXOSAScript('default')

(3)

'safari'

MacOSXOSAScript('safari')

(3)

'google-chrome'

Chrome('google-chrome')

'chrome'

Chrome('chrome')

'chromium'

Chromium('chromium')

'chromium-browser'

Chromium('chromium-browser')

Примечания:

  1. «Konqueror» - это файловый менеджер для среды рабочего стола KDE для Unix, и его имеет смысл использовать, только если запущен KDE. Было бы неплохо каким-то образом надежно определять KDE; переменной KDEDIR недостаточно. Обратите также внимание, что имя «kfm» используется даже при использовании команды konqueror с KDE 2 — реализация выбирает наилучшую стратегию для запуска Konqueror.

  2. Только на платформах Windows.

  3. Только на платформе macOS.

Добавлено в версии 3.3: Добавлена поддержка Chrome/Chromium.

Вот несколько простых примеров:

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.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().

Сноски

1

Исполняемые файлы, названные здесь без полного пути, будут искаться в каталогах, указанных в переменной окружения PATH.

Вернуться на верх