# 1 `webbrowser` -- 便利なウェブブラウザコントローラー

`webbrowser`モジュールにはウェブベースのドキュメントを表示するた めの、とてもハイレベルなインターフェースが定義されています。たいていの 環境では、このモジュールの`open()`を呼び出すだけで正しく動作し ます。

Unixでは、X11上でグラフィカルなブラウザが選択されますが、グラフィカルなブ ラウザが利用できなかったり、X11が利用できない場合はテキストモードのブラウザ が使われます。 もしテキストモードのブラウザが使われたら、ユーザがブラウザから抜け出すまでプ ロセスの呼び出しはブロックされます。

環境変数BROWSERが存在するならプラットフォームのデフォ ルトであるブラウザのリストをオーバーライドし、os.pathsepで区切られたリストの順に ブラウザの起動を試みます。 リストの中の値に`%s`が含まれていたら、テキストモードのブラウザのコマン ドラインとして`%s`の代わりにURLが引数として解釈されます； もし`%s`が含まれなければ、起動するブラウザの名前として単純に解釈されま す。

非UnixプラットフォームあるいはUnix上でリモートブラウザが利用可能な場合、制 御プロセスはユーザがブラウザを終了するのを待ちませんが、ディスプレイにブラウ ザのウィンドウを表示させたままにします。Unix上でリモートブラウザが利用可能 でない場合、制御プロセスは新しいブラウザを立ち上げ、待ちます。

webbrowser スクリプトをこのモジュールのコマンドラインインタフェースとして 使うことができます。スクリプトは引数に一つの URL を受け付けます。また次のオプション 引数を受け付けます。 -n により可能ならば新しいブラウザウィンドウで 指定された URL を開きます。一方、-t では新しいブラウザのページ(「タブ」) で開きます。当然ながらこれらのオプションは排他的です。

以下の例外が定義されています：

exception `Error`
  ブラウザのコントロールエラーが起こると発生する例外。

以下の関数が定義されています：

`open`( | url[, new=0[, autoraise=1]])

  デフォルトのブラウザでurlを表示します。 newが 0 なら、urlはブラウザの今までと同じウィンドウで開きます。 newが 1 なら、可能であればブラウザの新しいウィンドウが開きます。 newが 2 なら、可能であればブラウザの新しいタブが開きます。 autoraiseがtrueなら、可能であればウィンドウが前面に表示されます（多く のウィンドウマネージャではこの変数の設定に関わらず、前面に表示されます）。 バージョン 2.5 で 変更 された仕様: new を 2 にもできるようになりました

`open_new`( | url)

  可能であれば、デフォルトブラウザの新しいウィンドウでurlを開きますが、 そうでない場合はブラウザのただ１つのウィンドウでurlを開きます。

`open_new_tab`( | url)

  可能であれば、デフォルトブラウザの新しいページ(「タブ」)でurlを開きますが、 そうでない場合は`open_new`と同様に振る舞います。 バージョン 2.5 で 新たに追加 された仕様です。

`get`( | [name])

  ブラウザの種類nameのコントローラーオブジェクトを返します。 もしnameが空文字列なら、呼び出した環境に適したデフォルトブラウザのコン トローラーを返します。

`register`( | name, constructor[, instance])

  ブラウザの種類nameを登録します。 ブラウザの種類が登録されたら、`get()`でそのブラウザのコントローラー を呼び出すことができます。 instanceが指定されなかったり、`None`なら、インスタンスが必要な時 にはconstructorがパラメータなしに呼び出されて作られます。 instanceが指定されたら、constructorは呼び出されないので、 `None`でかまいません。

  この登録は、変数BROWSERを設定するか、`get`を空文字列でな く、宣言したハンドラの名前と一致する引数とともに呼び出すときだけ、役に立ちま す。

いくつかの種類のブラウザがあらかじめ定義されています。 このモジュールで定義されている、関数`get()`に与えるブラウザの名前 と、それぞれのコントローラークラスのインスタンスを以下の表に示します。

Type Name | Class Name | Notes
--- | --- | ---
`'mozilla'` | `Mozilla('mozilla')` |
`'firefox'` | `Mozilla('mozilla')` |
`'netscape'` | `Mozilla('netscape')` |
`'galeon'` | `Galeon('galeon')` |
`'epiphany'` | `Galeon('epiphany')` |
`'skipstone'` | `BackgroundBrowser('skipstone')` |
`'kfmclient'` | `Konqueror()` | (1)
`'konqueror'` | `Konqueror()` | (1)
`'kfm'` | `Konqueror()` | (1)
`'mosaic'` | `BackgroundBrowser('mosaic')` |
`'opera'` | `Opera()` |
`'grail'` | `Grail()` |
`'links'` | `GenericBrowser('links')` |
`'elinks'` | `Elinks('elinks')` |
`'lynx'` | `GenericBrowser('lynx')` |
`'w3m'` | `GenericBrowser('w3m')` |
`'windows-default'` | `WindowsDefault` | (2)
`'internet-config'` | `InternetConfig` | (3)
`'macosx'` | `MacOSX('default')` | (4)

Notes:

(1)
  ``Konqueror''はUnixのKDEデスクトップ環境のファイルマネージャで、KDEが動作 している時にだけ意味を持ちます。 何か信頼できる方法でKDEを検出するのがいいでしょう；変数KDEDIRでは十 分ではありません。 また、KDE 2でkonquerorコマンドを使うときにも、``kfm''が使われます -- Konquerorを動作させるのに最も良い方法が実装によって選択されます。

(2)
  Windowsプラットフォームのみ。

(3)
  MacOSプラットフォームのみ；Macintosh Library Modulesマニュアルに解説されている標準MacPythonモジュール`ic` を必要とします。

(4)
  MacOS X プラットフォームのみ。

簡単な例を示します。

    url = 'http://www.python.org'

    # Open URL in a new tab, if a browser window is already open.
    webbrowser.open_new_tab(url + '/doc')

    # Open URL in new window, raising the window if possible.
    webbrowser.open_new(url)