Python標準の組み込みライブラリであるwebbrowderモジュールは、ブラウザを制御してWebサイトを表示することができます。本記事では、このモジュールの使い方についてまとめます。
#2020/3/16 記事更新
確認した環境
- Ubuntu16.04LTS
- Python3.7.4
webbrowserモジュールを使ったWebサイトの表示
open() メソッドを用いて指定したURLのページをブラウザで開くことができます。
尚、後述するget()メソッドでブラウザを指定しない場合は、自身の環境のデフォルトブラウザが適用されます。表示が正常に完了するとTrueを返します。
使い方は以下です。
webbrowser.open(url, new=0, autoraise=True)
第1引数 url: 表示するWebサイトのURLを設定します。
第2引数 new: 下表に示します。
設定値 | 動作 |
---|---|
0(デフォルト) | 今までと同じウインドウで開く |
1 | 新しいウインドウ .open_new()メソッドと同じ動作 |
2 | 新しいタブ .open_new_tab()メソッドと同じ動作 |
簡単な使用例を以下に示します。
>>> import webbrowser
>>> url = 'https://hibiki-press.tech'
# デフォルトブラウザ(筆者の環境ではchrome)でWebサイトを開く
>>> webbrowser.open(url)
True
# 新しいウインドウで開く
>>> webbrowser.open(url, 1)
True
# 新しいタブで開く
>>> webbrowser.open(url, 2)
True
ブラウザを指定する
get() メソッドを使ってブラウザを指定することも可能です。書式を以下に示します。
webbrowser.get(using=None)
使いたいブラウザを、引数usingに指定します。
Noneを設定した場合は、現在の環境のデフォルトブラウザが選択されます。
具体的な使用例を以下に示します。
# デフォルトブラウザの場合
>>> webbrowser.get()
<webbrowser.Chrome object at 0x7f70e5c53240>
# 別のブラウザを指定
>>> webbrowser.get('firefox')
<webbrowser.Mozilla object at 0x7f70e5c531d0>
尚、指定できるブラウザは、公式リファレンスの表 をご参照ください。但し、現在の環境に入っていないブラウザを指定すると、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
<参考記事>【Ubuntu】 インストールされているブラウザを調べる
また、get()メソッドによって生成されたオブジェクト(コントローラオブジェクト)は、open()メソッドをサポートしているので、これを用いて下記のようにしてWebブラウザを開くことが出来ます。
>>> webbrowser.get('firefox').open(url)
True
まとめ
Pythonの組み込みライブラリのwebbrowserモジュールを使って、簡単にWebサイトを開く方法についてまとめました。ブラウザの種類も指定できます。