webbrowser – web ページを表示する

目的:ユーザへ web ページを表示するのに webbrowser モジュールを使用する
利用できるバージョン:2.1.3 以上

webbrowser モジュールはインタラクティブなブラウザアプリケーションで URL を開く機能を提供します。このモジュールは、利用可能なブラウザを登録して、システム上で複数のオプションを利用できます。さらに BROWSER 環境変数で管理することもできます。

簡単なサンプル

ブラウザでページを開くには open() 関数を使用してください。

import webbrowser

webbrowser.open('http://docs.python.org/lib/module-webbrowser.html')

ブラウザが指定した URL を開いて、その画面がウィンドウスタックのトップに表示されます。標準ライブラリドキュメントにはできるだけ既存のウィンドウを再利用すると記載されていますが、実際には、ブラウザ設定に依存する可能性があります。私の Mac 上で Firefox を使用すると、毎回、新しいウィンドウが作成されます。

ウィンドウとタブ

必ず新しいウィンドウを開きたいなら open_new() を使用してください。

import webbrowser

webbrowser.open_new('http://docs.python.org/lib/module-webbrowser.html')

新しいタブを作成したいなら、代わりに open_new_tab() を使用してください。

特殊なブラウザを使用する

何らかの理由でアプリケーションが特殊なブラウザを使用する必要があるなら、 get() を使用して登録済みのブラウザコントローラへアクセスできます。ブラウザコントローラは open(), open_new(), open_new_tab() というメソッドがあります。このサンプルは強制的に lynx ブラウザを使用します。

import webbrowser

b = webbrowser.get('lynx')
b.open('http://docs.python.org/lib/module-webbrowser.html')

利用可能なブラウザの種類については標準ライブラリドキュメントを参照してください。

BROWSER 変数

ユーザは、ブラウザ名かコマンドを環境変数 BROWSER を設定することでアプリケーションの外部からこのモジュールを管理できます。その値は os.pathsep() で分割される一連のブラウザ名で構成されます。もし %s という名前を含むなら、その名前はリテラルコマンドとして解釈されて、URL によって置き換えられる %s で直接的に実行されます。それ以外の場合は、その名前が get() へ渡されて、レジストラからコントローラオブジェクトを取り出します。

例えば、このコマンドは lynx が利用可能であることを前提として lynx で web ページをオープンします。 他のブラウザが登録されていても問題はありません。

$ BROWSER=lynx python webbrowser_open.py

BROWSER 変数に値がセットされていない場合 webbrowser はデフォルトの動作になります。

コマンドラインインタフェース

webbrowser モジュールの全ての機能は Python プログラム内から扱うのと同様にコマンドラインからも利用できます。

$ python -m webbrowser
Usage: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/webbrowser.py [-n | -t] url
    -n: open new window
    -t: open new tab

See also

webbrowser
本モジュールの標準ライブラリドキュメント
Bookmark and Share