Playwright を使ってみた

Playwright という Microsoft 製のツールを試した。簡単にいうと Puppeteer の進化版で、Chrome、Firefox、Safari (WebKit) ブラウザを Puppeteer 風に簡単に操作できる。

お試ししてみたリポジトリは以下。

$ npm install -D playwright

で Playwright をインストールすると、裏で各ブラウザのバイナリがダウンロードされるようだ。当方環境で試したところ、Chromium (96.9MB)・Firefox (74.4MB) がダウンロードされた。WebKit ブラウザは OS バージョンが対応しておらず、ダウンロードに失敗した。WebKit だけはまだ対応バージョンがガチガチに決められていて、少々扱いづらい感じだ。

Playwright がブラウザを内蔵しているので、操作も簡単というワケ。リファレンスを参考に、見様見真似で実装すると、すぐに動かせた。

page.goto() でページを移動したり、page.$()page.$$() で DOM を参照するあたりは、Puppeteer とほとんど同じ要領だ。ほぼ全ての API が非同期関数なので、asyncawait を多用することになるだろう。

自分が作ったリポジトリでは、指定のページをスクレイピングするようなスクリプトにした。なかなかよきよき。