Python標準組み込みモジュールのwebbrowserは、ブラウザを制御してWebサイトを表示することができます。本記事では、このモジュールの使い方についてまとめます。
確認した環境
- Ubuntu16.04LTS, Ubuntu20.04LTS
- Python3.9.7
ブラウザを開いてWebサイトを表示する
まず、webbrowserモジュールをインポートします。
標準の組込みモジュールなので新たにモジュールをインストールする必要はありません。
import webbrowser
open() メソッドを用いて指定したURLのページをブラウザで開くことができます。
表示が正常に完了するとTrueを返します。
尚、後述するget()でブラウザを指定しない場合は、自身の環境のデフォルトブラウザが適用されます。
使い方は以下です。
webbrowser.open(url, new=0, autoraise=True)
- 第1引数 url: 表示するWebサイトのURLを設定します。
- 第2引数 new: 表示モードを設定。下表参照
- 第3引数 autoraise: Trueの場合は可能であればウィンドウが前面に表示されます(環境による)
設定値 | 動作 |
---|---|
0(デフォルト) | 今までと同じウインドウで開く |
1 | 新しいウインドウ .open_new()メソッドと同じ動作 |
2 | 新しいタブ .open_new_tab()メソッドと同じ動作 |
具体的な例を以下に示します。
>>> import webbrowser
>>> url = "https://www.google.com"
# デフォルトブラウザ(筆者の環境ではChrome)でWebサイトを開く
>>> webbrowser.open(url)
True
# 新しいウインドウで開く
>>> webbrowser.open(url, 1)
True
# 新しいタブで開く
>>> webbrowser.open(url, 2)
True
ブラウザを指定する
get() メソッドは、引数で指定したブラウザのコントローラオブジェクトを返します。
※デフォルト設定(=None)の場合は、現在の環境のデフォルトのブラウザコントローラを返します。
# デフォルト設定
>>> webbrowser.get()
<webbrowser.Chrome object at 0x7f70e5c53240>
# ブラウザを指定(例えばFirefox)
>>> webbrowser.get('firefox')
<webbrowser.Mozilla object at 0x7f70e5c531d0>
指定できるブラウザは、公式リファレンスの表 をご参照ください。
また、自分の環境にインストールされているブラウザを調べるには、下記の記事をご参照ください。
<参考記事>【Ubuntu】 インストールされているブラウザを調べる
尚、自分の環境に入っていないブラウザを指定すると、webbrowser.Errorが送出されます。
# 現在の環境に入っていないブラウザを指定するとエラー
>>> webbrowser.get('safari')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/hibikisan/anaconda3/envs/python3.7/lib/python3.7/webbrowser.py", line 65, in get
raise Error("could not locate runnable browser")
webbrowser.Error: could not locate runnable browser
ブラウザ種類を指定してWebサイトを開くには、このget()の戻り値であるコントローラオブジェクトに対して、open()を呼び出します。
具体例を下記に示します。
# ブラウザを指定(この場合はFirefox)
>>> webbrowser.get('firefox').open(url)
True
# デフォルト設定(冗長ですが)
>>> webbrowser.get().open(url)
True
まとめ
Pythonの標準組み込みモジュールのwebbrowserを使ってWebサイトを開く方法についてまとめました。必要に応じてブラウザの種類も指定できます。