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

Разработка на Python Просмотров: 2619

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.