Skip to content

Instantly share code, notes, and snippets.

@wordijp
Last active November 16, 2023 23:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wordijp/25960399ee5e829fa843ba947fb4a658 to your computer and use it in GitHub Desktop.
Save wordijp/25960399ee5e829fa843ba947fb4a658 to your computer and use it in GitHub Desktop.
Playwrightでスクレイピングする際の開発方法

Playwrightでスクレイピングする際の開発方法

1. 大まかな操作のコードを生成

> npx playwright codegen <url>

にてそのサイトで行いたいページ遷移、取得するDOMの大まかなコードを生成する

2. replを使い細かな調整を行う

> node --experimental-repl-await

にてnodeをREPLにて実行し、1.で生成したコードを切りの良い所まで実行する。コマンドプロンプトの場合、
オプション > 編集オプション > Ctrl+Shift+C/V をコピー/貼り付けとして使用する
を有効にしているとエディタからの貼り付けが手軽になる。
複数行の場合は

> .editor

で対応出来る、確定は Ctrl + D

エディタ、コマンドプロンプト間の切り替えが面倒な時は AutoHotkey を使い、エディタにフォーカスを保ったままコマンドプロンプトに張り付ける設定をすれば手軽になる。

・AutoHotkeyで指定ウィンドウごとに独自マクロを設定・実行する

を使い、コマンドプロンプトにて 例えば無変換 + F1に

Send, .editor{Enter}
Send, ^+v
Send, ^d

と設定。

3. 最後に

Playwrightは多言語対応が手軽である、また取得データの保存などは後続のツールに任せた方が汎用性があるため、結果はJSON形式で出力するようにする。 その為のexe化は、node版ならpkgでexeに固められ、Playwright-goなら最初からシングルバイナリに出来る。 あとはこのexeをフロントエンドアプリやスクリプトから呼び出し、加工して保存などよしなに。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment