7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

いろいろな言語に移植されたPuppeteerっぽいライブラリまとめ

Last updated at Posted at 2020-06-05

Chrome DevToolsプロトコルを使い、PuppeteerっぽいAPIが使えるライブラリまとめ。
(ただし、CypressのようにCDPは使ってるけどPuppeteer APIっぽくないやつは除外)

ほぼ自分用メモ。

:tada: 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が主流になりそう。

:thumbsup: 便利ツール

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さんが万一倒れたりしたら開発止まりそう

:pencil: よさそう

lang name repo memo
Python pyppeteer pyppeteer/pyppeteer
Java playwright-java microsoft/playwright-java

:thinking: 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くらいか。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?