Chrome DevToolsプロトコルを使い、PuppeteerっぽいAPIが使えるライブラリまとめ。
(ただし、CypressのようにCDPは使ってるけどPuppeteer APIっぽくないやつは除外)
ほぼ自分用メモ。
Production ready
lang | name | repo | memo |
---|---|---|---|
JavaScript | Puppeteer | puppeteer/puppeteer | 本家 |
TypeScript | Playwright | microsoft/playwright | |
Python | playwright-python | playwright-python |
- playwrightの勢いがすごい。
- puppeteerとはいつまで共存するんだろう
- 自動操作/スクレイピング目的だけでなく、Jestと連携してE2Eテスト書ける
- Playwrightはjestではなくmicrosoft/folioというテストランナーを使ったplaywright-testが主流になりそう。
便利ツール
lang | name | repo | memo |
---|---|---|---|
C# | playwright-sharp | microsoft/playwright-sharp | Windowsなら最強の選択肢? |
Dart | puppeteer-dart | xvrh/puppeteer-dart | dart2nativeでシングルバイナリが作れる |
- C#やDartは静的型付け言語なので、エディタによる補完が非常にかしこい。
- puppeteer, playwright にはぜひDart採用してほしい... (無理w
- async/awaitの使い勝手が、JSと似ている
- puppeteer-sharpの開発者がplaywright-sharpを作ったのがマイクロソフトに拾われたようだ。
- puppeteer-dartは、個人開発
- 2年以上開発は続いているが、xvrhさんが万一倒れたりしたら開発止まりそう
よさそう
lang | name | repo | memo |
---|---|---|---|
Python | pyppeteer | pyppeteer/pyppeteer | |
Java | playwright-java | microsoft/playwright-java |
-
Puppeteer (Chrome の自動操作ライブラリ) を Python に移植してpyppeteerという名前で公開しました
- playwright-pythonは実は半分以上JavaScriptで書かれたサーバープロセス(playwrightドライバ)が動いているが、pyppeteerはPure Python。
PoC?
lang | name | repo | memo |
---|---|---|---|
Kotlin | kpuppeteer | DealPoint/kpuppeteer | |
Java | jvppeteer | fanyong920/jvppeteer | |
PHP | puphpeteer | nesk/puphpeteer | メンテナ募集中みたい |
Ruby | puppeteer-ruby | YusukeIwaki/puppeteer-ruby | 勝手に作った |
Ruby | playwright-ruby-client | YusukeIwaki/playwright-ruby-client | 勝手に作った |
- asycn/awaitがない言語では、本家(JS)からのポーティングもしんどいのかな
PoCレベルであれば、他にもありそう。
プロダクション運用で使えそうなのは、やはりpuppeteer, playwrightくらいか。