Добрый день, друзья. В этой статье мы рассмотрим пример того, как открыть заданную страницу (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.

