Как открыть страницу в браузере при помощи Python?

User Rating: 5 / 5

Добрый день, друзья. В этой статье мы рассмотрим пример того, как открыть заданную страницу (URL) в браузере при помощи языка Python. Для работы с браузерами в Python есть отдельный модуль webbrowser, который мы и будем использовать для этой цели. 

Первое, что нужно сделать - подключить модуль webbrowser в вашем скрипте при помощи оператора import:

import webbrowser

Также для нашего примера потребуется функция из модуля sys для получения информации о последнем исключении, которое может произойти в программе, поэтому также подключим его к нашему скрипту:

import sys

Дальше мы рассмотрим небольшой пример того, как можно открыть нужную вам страницу в нужном браузере, используя этот модуль. В примере мы откроем одну страницу в браузере Microsoft Edge, а вторую откроем в браузере, установленном в вашей системе по умолчанию. Перейдем сразу к коду нашего скрипта:

if __name__ == '__main__':
    edgeExecutablePath = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"
    print(f'Путь к исполняемому файлу MS Edge: {edgeExecutablePath}')
    edgeBrowserInstance = webbrowser.BackgroundBrowser(edgeExecutablePath)
    webbrowser.register(name='edge', klass=None, instance=edgeBrowserInstance, preferred=False)

    try:
        inst = webbrowser.get('edge')
        inst.open_new("http://yandex.ru")   # Открыть страницу http://yandex.ru в браузере MS Edge
    except TypeError:
        type, value, traceback = sys.exc_info()
        print(f'Error occured:\r\n\ttype: {type}\r\n\tvalue: {value}\r\n\ttraceback = {traceback}')

    webbrowser.open_new("http://python.org")    # Открыть страницу http://python.org в браузере по умолчанию

Итак, вначале скрипт устанавливает полный путь к исполняемому файлу (EXE) для браузера Microsoft Edge и записывает его в переменную edgeExecutablePath. Затем мы создаём экземпляр (instance) браузера при помощи класса BackgroundBrowser, поставляемого модулем webbrowser и передаём ему путь к исполняемому файлу браузера. Когда готов экземпляр браузера edgeBrowserInstance, мы используем его для регистрации браузера при помощи функции register.

Дальше всё просто, с помощью вызова webbrowser.get('edge') мы получаем экземпляр нашего браузера и остаётся только передать наш URL функции open_new(). Эта функция пробует создать отдельное окно браузера и открыть в нём заданную нами страницу. У неё может не получиться создать честное новое окно браузера, в этом случае она будет действовать как функция open_new_tab(), т.е. просто создаст новую вкладку в уже открытом браузере.

Вторую страницу в самом конце скрипта мы открываем с помощью браузера по умолчанию. В моём случае в качестве такого установлен Chrome, поэтому страница открывается в нём. При запуске скрипта будут открыты две разных страницы в двух браузерах - Microsoft Edge и Chrome (второй может отличаться в вашем случае, если у вас установлен другой системный браузер).

Попробуйте запустить скрипт на вашем окружении и поделиться результатами в комментариях к статье. Кстати, попробуйте также поменять параметр preferred=True в функции register() при регистрации экземпляра браузера. Какой от этого получился эффект? Напишите в комментариях.

В качестве референса и самостоятельного изучения возможностей модуля - ссылка на документацию модуля. Там вы найдете описание всех основных функций модуля, но ключевые из них мы  уже рассмотрели с вами выше на нашем примере.

Надеюсь, эта небольшая статья поможет вам использовать модуль webbrowser для решения задач, где требуется открытие браузера при помощи Python.

Сейчас на сайте

Сейчас на сайте 188 гостей и нет пользователей

Яндекс.Метрика