Модуль webbrowser

modul webbrowser Законченные системные программы

Модуль webbrowser, входящий в состав стандартной библиотеки и используемый в этом примере, предоставляет переносимый интерфейс для запуска веб-броузера из сценариев на языке Python. Он пытается отыскать подходящий веб-броузер на локальном компьютере, чтобы открыть указанный адрес URL (полное имя файла или веб-адрес). Интерфейс модуля достаточно прост:

>>> import webbrowser

>>> webbrowser.open_new(‘file://’ + fullfilename) # используйте

# os.path.abspath()

Этот программный код откроет указанный файл в новом окне броузера, который удастся обнаружить на локальном компьютере, или возбудит исключение. Имеется возможность явно перечислить броузеры, имеющиеся в системе, и определить порядок, в каком они будут использоваться, с помощью переменной окружения BROWSER и функции register. По умолчанию модуль webbrowser автоматически пытается обеспечить переносимость между платформами.

Чтобы открыть файл, находящийся на локальном компьютере или на веб-сервере, строка аргумента должна иметь вид «file://…» или «http://…» соответственно. Фактически можно передать строку URL любого вида, которую воспринимает броузер. Например, следующая инструкция откроет домашнюю страницу проекта Python в новом окне броузера:

>>> webbrowser.open_new(‘http://www.python.org’)

Кроме всего прочего, этот модуль обеспечивает простой способ отображения документов HTML, а также медиафайлов, как демонстрируется в примере из этого раздела. К тому же этот модуль может использоваться и как самостоятельный сценарий командной строки (здесь вам поможет ключ m командной строки интерпретатора, включающий путь поиска модулей), и как импортируемый инструмент:

C:\Users\mark\Stuff\Websites\public_html> python -m webbrowser about-pp.html

C:\Users\mark\Stuff\Websites\public_html> python -m webbrowser -n about-pp.html

C:\Users\mark\Stuff\Websites\public_html> python -m webbrowser -t about-pp.html

C:\Users\mark\Stuff\Websites\public_html> python

>>> import webbrowser

>>> webbrowser.open(‘about-pp.html’) # повторное использование,

True # новое окно, новая вкладка

>>> webbrowser.open_new(‘about-pp.html’) # file:// не обязательно в Windows

True

>>> webbrowser.open_new_tab(‘about-pp.html’)

True

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

В Windows, например, все три просто вызывают функцию os.startfile по умолчанию, в результате чего создается новая вкладка в уже открытом окне Internet Explorer 8. Это объясняет, почему я не указывал полный префикс «file://» URL в предыдущем фрагменте. Формально, броузер Internet Explorer запускается, только если он зарегистрирован как инструмент открытия файлов указанного типа, в противном случае запускается специализированный инструмент для работы с такими файлами. Некоторые изображения, например, могут открываться в специализированных программах просмотра фотографий. На других платформах, таких как Unix и Mac OS X, поведение броузера отличается, и файлы, имена которых не являются полноценным адресом URL, могут не открываться, поэтому для переносимости используйте префикс «file://». Мы еще вернемся к этому модулю далее в книге. Например, программа PyMailGUI в главе 14 будет использовать его как инструмент отображения сообщений электронной почты и вложений в формате HTML, а также отображения справки к программе. За дополнительной информацией обращайтесь к руководству по библиотеке Python. В главах 13 и 15 мы также встретим родственную функцию urllib.request.urlopen, которая извлекает текст веб-страницы, находящейся по указанному адресу URL, но не открывает его в броузере — этот текст можно проанализировать, сохранить и использовать как-то иначе.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий