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

Kod źródłowy: Lib/webbrowser.py


Модуль webbrowser забезпечує інтерфейс високого рівня, який дозволяє відображати веб-документи користувачам. У більшості випадків простий виклик функції open() з цього модуля буде правильним.

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

If the environment variable BROWSER exists, it is interpreted as the os.pathsep-separated list of browsers to try ahead of the platform defaults. When the value of a list part contains the string %s, then it is interpreted as a literal browser command line to be used with the argument URL substituted for %s; if the part does not contain %s, it is simply interpreted as the name of the browser to launch. [1]

Для платформ, відмінних від Unix, або коли в Unix доступний віддалений браузер, процес керування не чекатиме, поки користувач закінчить роботу з браузером, а дозволить віддаленому браузеру підтримувати власні вікна на дисплеї. Якщо віддалені браузери недоступні в Unix, процес керування запустить новий браузер і зачекає.

В iOS переменная среды BROWSER, а также любые аргументы, управляющие автоподнятием, настройками браузера и созданием новой вкладки/окна, будут игнорироваться. Веб-страницы всегда открываются в предпочитаемом пользователем браузере на новой вкладке, при этом браузер выводится на передний план. Для использования модуля webbrowser в iOS требуется модуль ctypes. Если ctypes недоступен, вызов open() завершится неудачно.

Скрипт webbrowser можно использовать в качестве интерфейса командной строки для модуля. Он принимает URL-адрес в качестве аргумента. Он принимает следующие необязательные параметры:

-n, --new-window

Abre a URL em uma nova janela do navegador, se possível.

-t, --new-tab

Abre a URL em uma nova aba do navegador.

As opções são, naturalmente, mutuamente exclusivas. Exemplo de uso:

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

Dostępność: not WASI, not Android.

Визначено такий виняток:

exception webbrowser.Error

Виняток виникає, коли виникає помилка керування браузером.

Визначаються такі функції:

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

Відображати url за допомогою браузера за умовчанням. Якщо new дорівнює 0, url відкривається в тому ж вікні браузера, якщо це можливо. Якщо new дорівнює 1, відкривається нове вікно браузера, якщо це можливо. Якщо new дорівнює 2, за можливості відкривається нова сторінка браузера („вкладка”). Якщо autoraise має значення True, вікно відкривається, якщо це можливо (зверніть увагу, що в багатьох віконних менеджерах це відбуватиметься незалежно від налаштування цієї змінної).

Возвращает True, если браузер был успешно запущен, в противном случае — False.

Зауважте, що на деяких платформах спроба відкрити ім’я файлу за допомогою цієї функції може спрацювати та запустити відповідну програму операційної системи. Однак це не підтримується та не переноситься.

Викликає подію аудиту webbrowser.open з аргументом url.

webbrowser.open_new(url)

Відкрийте url у новому вікні браузера за замовчуванням, якщо можливо, інакше відкрийте url в єдиному вікні браузера.

Возвращает True, если браузер был успешно запущен, в противном случае — False.

webbrowser.open_new_tab(url)

Відкрийте url на новій сторінці („вкладці”) веб-переглядача за умовчанням, якщо це можливо, інакше еквівалентно open_new().

Возвращает True, если браузер был успешно запущен, в противном случае — False.

webbrowser.get(using=None)

Повертає об’єкт контролера для типу браузера using. Якщо using має значення None, поверніть контролер для браузера за замовчуванням, який відповідає середовищу абонента.

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

Зареєструйте тип браузера ім’я. Після реєстрації типу браузера функція get() може повернути контролер для цього типу браузера. Якщо екземпляр не надано або має значення None, конструктор буде викликано без параметрів для створення екземпляра за потреби. Якщо надано екземпляр, конструктор ніколи не буде викликаний і може бути None.

Якщо встановити preferred на True, цей браузер стане кращим результатом для виклику get() без аргументів. В іншому випадку ця точка входу корисна, лише якщо ви плануєте встановити змінну BROWSER або викликати get() з непорожнім аргументом, який відповідає імені обробника, який ви оголошуєте.

Zmienione w wersji 3.7: Додано переважний параметр лише для ключового слова.

Кілька типів браузерів визначено заздалегідь. У цій таблиці наведено назви типів, які можна передати функції get(), і відповідні екземпляри для класів контролерів, усі визначені в цьому модулі.

Nama Tipe

Nama Kelas

Notatki

'mozilla'

Mozilla('mozilla')

'firefox'

Mozilla('mozilla')

'epiphany'

Epiphany('epiphany')

'kfmclient'

Konqueror()

(1)

'konqueror'

Konqueror()

(1)

'kfm'

Konqueror()

(1)

'opera'

Opera()

'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')

'iosbrowser'

IOSBrowser

(4)

Uwagi:

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

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

  3. Только на MacOS.

  4. Только на iOS.

Dodane w wersji 3.2: Был добавлен новый класс MacOSXOSAScript, который используется на Mac вместо предыдущего класса MacOSX. Это добавляет поддержку открытия браузеров, которые в настоящее время не установлены в ОС по умолчанию.

Dodane w wersji 3.3: Додано підтримку Chrome/Chromium.

Zmienione w wersji 3.12: Удалена поддержка нескольких устаревших браузеров. Удаленные браузеры включают Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape и Firefox версии 35 и ниже.

Zmienione w wersji 3.13: Добавлена ​​поддержка iOS.

Ось декілька простих прикладів:

URL = 'https://docs.python.org/' # Открыть URL-адрес в новой вкладке, если окно браузера уже открыто. webbrowser.open_new_tab(url) # Откройте URL-адрес в новом окне, если возможно, поднимите окно. webbrowser.open_new(url)

Об’єкти контролера браузера

Os controladores de navegador fornecem o atributo name e os três métodos a seguir que são paralelos às funções de conveniência em nível de módulo:

controller.name

Системно-зависимое имя браузера.

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

Przypisy