「Playwrightを利用したい」
「PlaywrightをPythonから操作したい」
「PlaywrightをUbuntuで動かしたい」
このような場合には、Playwright Pythonが利用できます。
この記事では、Playwright Pythonについて解説しています。
本記事の内容
- Playwright Pythonとは?
- Playwright Pythonのシステム要件
- Playwright Pythonのインストール
- Playwright Pythonの動作確認
それでは、上記に沿って解説していきます。
Playwright Pythonとは?
Playwrightは、Node.jsのライブラリとしてMicrosoftによって開発されています。
簡単に言うと、Seleniumのようなモノです。
そんな便利なモノなら、Node.js以外の言語でも利用したいとなります。
そこで、次の各言語から利用できるようにMicrosoftが頑張ってくれています。
- Python
- Java
- .NET
Pythonのために用意されたのが、Playwright Pythonということです。
そして、Playwright Pythonで利用可能なブラウザは、次の3つになります。
- Chromium
- Firefox
- WebKit
以上、Playwright Pythonについての説明でした。
次は、Playwright Pythonのシステム要件を確認します。
Playwright Pythonのシステム要件
現時点(2021年10月末)でのPlaywright Pythonの最新バージョンは、1.16.0となります。
この最新バージョンは、2021年10月22日にリリースされています。
更新頻度は、多めです。
最も重要なことを先に述べておきます。
Playwright Pythonを動かすのに、Node.jsのインストールは不要です。
Playwright Pythonについては、Node.jsのインストールありきの情報があります。
例えば、次のようなコマンドがあります。
WindowsではなくLinuxの場合の話です。
sudo npx playwright install-deps
npxは、Node.jsをインストールしたら利用可能になるコマンドです。
このようなコマンドから察すると、Node.jsのインストールが必須に思われます。
しかし、npxコマンドを使わなくても同じ処理が可能なのです。
その方法は、「Playwright Pythonのインストール」で説明しています。
とにかく、Node.jsのインストールは不要であることを覚えておいてください。
では、それ以外のシステム要件を説明していきます。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
また、サポート対象となるPythonのバージョンは以下となります。
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
これは、理想的なサポート状況と言えます。
次のPython公式開発サイクルに準じています。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.6は、2021年末でサポート期限が切れます。
そのため、Python 3.6のサポートを打ち切るライブラリも出てきています。
このような前倒しを行うのは、メンテンナンスが行き届いているライブラリがほとんどです。
さらには、Python 3.10への対応も済ましています。
ライブラリの運営にMicrosoftが参加しているだけはありますね。
素晴らしい対応力と言えます。
Playwright Pythonのシステム要件をまとめると、一言になります。
Python 3.7以降が必須であるということです。
あとは、Node.jsはインストールする必要はないということでしょう。
以上、Playwright Pythonのシステム要件を説明しました。
次は、Playwright Pythonをインストールします。
Playwright Pythonのインストール
検証は、次のバージョンのPythonで行います。
>python -V Python 3.9.7
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.3.1 setuptools 58.3.0
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Playwright Pythonのインストールです。
Playwright Pythonのインストールは、以下のコマンドとなります。
pip install playwright
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- greenlet 1.1.2 pip 21.3.1 playwright 1.16.0 pyee 8.2.2 setuptools 58.3.0 websockets 10.0
これだけだとPlayWrightは、まだ機能できません。
ブラウザが何もまだない状態です。
そこで、次のコマンドでPlayWrightにおいて利用可能なブラウザをインストールします。
python -m playwright install
上記コマンドは、先ほどインストールしたPlaywright Pythonをモジュールとして利用するということです。
「playwright(python -m playwright)」コマンドのヘルプは、以下。
>python -m playwright -help Usage: npx playwright [options] [command] Options: -V, --version output the version number -h, --help display help for command Commands: open [options] [url] open page in browser specified via -b, --browser codegen [options] [url] open page and generate code for user actions install [options] [browser...] ensure browsers necessary for this version of Playwright are installed install-deps [browser...] install dependencies necessary to run browsers (will ask for sudo permissions) cr [options] [url] open page in Chromium ff [options] [url] open page in Firefox wk [options] [url] open page in WebKit screenshot [options] <url> <filename> capture a page screenshot pdf [options] <url> <filename> save page as pdf show-trace [options] [trace] Show trace viewer help [command] display help for command
「install」をコマンドに含めた場合は、次の処理となります。
install [options] [browser...] ensure browsers necessary for this version of Playwright are installed
これにより、利用可能なブラウザがインストールされることになります。
ブラウザのインストールというより、ダウンロードですね。
$ python -m playwright install Downloading Playwright build of chromium v930007 - 127.5 Mb [====================] 100% 0.0s Playwright build of chromium v930007 downloaded to /ユーザーHOME/.cache/ms-playwright/chromium-930007 Downloading Playwright build of ffmpeg v1006 - 2.6 Mb [====================] 100% 0.0s Playwright build of ffmpeg v1006 downloaded to /ユーザーHOME/.cache/ms-playwright/ffmpeg-1006 Downloading Playwright build of firefox v1297 - 72.1 Mb [====================] 100% 0.0s Playwright build of firefox v1297 downloaded to /ユーザーHOME/.cache/ms-playwright/firefox-1297 Downloading Playwright build of webkit v1564 - 79.3 Mb [====================] 100% 0.0s Playwright build of webkit v1564 downloaded to /ユーザーHOME/.cache/ms-playwright/webkit-1564
Windowsの場合は、ここまでの処理だけでインストール完了です。
しかし、Linux(Ubuntu)の場合はこのままでは動きません。
macOSもその可能性が、高いかもしれません。
Linux(Ubuntu)は追加で処理が必要
まずは、次のコマンドでパッケージをインストールします。
sudo apt-get install libgtk-3-0
環境によっては、不要かもしれません。
少なくとも、Ubuntu 20.04 LTSでは必要です。
ここで、再度「playwright(python -m playwright)」コマンドを使います。
python -m playwright install-deps
ブラウザを実行するのに、必要なモノをインストールします。
かなり多くのパッケージが、インストールされます。
そのため、かなり長い時間待たされます。
インストール失敗が、高い確率で起きそうな箇所ですね。
まとめ
Windowsなら、特に心配はありません。
さくさくとインストールは進むでしょう。
それ以外のOSの場合は、苦労する可能性があります。
そんな場合は、Playwright Pythonを諦めるのも一つの手です。
ブラウザ操作をPythonで実行したいなら、Seleniumでも事足ります。
Seleniumについては、次の記事で解説しています。
以上、Playwright Pythonのインストールを説明しました。
次は、Playwright Pythonの動作確認を行います。
Playwright Pythonの動作確認
最初に、次のページにアクセスしてみてください。
http://whatsmyuseragent.org/
ここでは、あなたが利用中のブラウザが表示されています。
正確には、ユーザーエージェントですね。
あと、IPアドレスも表示されています。
今回は、IPアドレスは関係ないので無視します。
このページへPlaywright Pythonでアクセスします。
そして、スクリーンショットを撮ります。
この処理を行うコードは、以下。
from playwright.sync_api import sync_playwright with sync_playwright() as p: for browser_type in [p.chromium, p.firefox, p.webkit]: browser = browser_type.launch() page = browser.new_page() page.goto('http://whatsmyuseragent.org/') page.screenshot(path=f'{browser_type.name}.png') browser.close()
上記を実行すると、同じディレクトリ上に3つの画像が作成されます。
- chromium.png
- firefox.png
- webkit.png
ファイル名からわかるように、利用可能なブラウザ毎に取得したスクリーンショットです。
chromium.pngでは、次のように表示されています。
なお、上の画像はWindowsでサンプルコードを動かした場合のモノです。
Linuxで動かした場合は、次のようになります。
以上、Playwright Pythonの動作確認を説明しました。