【Python】Playwrightのインストール(Node.js不要)

【Python】Playwrightのインストール(Node.js不要) プログラミング

「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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました