puppeteerによるスクレイピング

posted in: JavaScript | 0

松山事務所の くろもん です。
今回はスクレイピングやWeb自動化に使用できる、puppeteerを用いたプログラムを作成しました。

puppeteerとは

https://github.com/GoogleChrome/puppeteer

ヘッドレスChromeを利用して、ホームページの表示やform要素への値の設定や取得、スクリーンショットの取得などができるライブラリです。
ヘッドレスChromeを使用するため、OSによらず、Google Chromeを使用した場合とほぼ同様の操作を実行させることができます。

開発環境について

Node.js(npm)さえインストールされていれば、以下のコマンドで必要なライブラリを入手でます。
後は通常のNode.jsでのプログラムと同様に実行することが可能です。

単純な使用例

  1. 使用するChromeの設定を行います。headlessをtrueにすることで、実際にブラウザで表示しながら、コードの実行を確認できます。
  2. 指定したURLのページを画面に表示します。
  3. 指定したセレクタに当てはまる要素が取得可能になるまで待機します。
  4. 指定したセレクタに当てはまる要素の入力欄に、”test”という文字列を設定します。
  5. 指定したセレクタに当てはまる要素をクリックします。
  6. 現在表示しているページのスクリーンショットを取得し、ファイルに保存して画面を閉じます。

実際に作成したもの(抜粋)

画面に入力された内容に応じて、画面内の地図上にバルーンが表示されるページを想定し、その入力からバルーンの表示、内容の取得を機械的に行う処理を作成しました。

併用に便利なツールについて

情報が多い画面の場合、対象のセレクタを特定することに少し手間がかかります。
そのため、Puppeteer Recorder等のツールを併用してプログラムを作成するころをおすすめします。

使用に関しての注意

puppeteerは便利なツールではあるのですが、Dos攻撃を容易に行うことができるものでもあります。良識を持ち、対象のサービスの利用規約と負荷を考慮したうえ、適切に使用してください。

LINEで送る
Pocket