投稿

12月, 2022の投稿を表示しています

Puppeteer を使ってウェブスクレイピングしてみた

Puppeteer を使って初めてウェブスクレイピングしたことをメモします。 【目次】 [1]はじめに [2]感想など (1)Puppeteer に関する感想 (2)ウェブスクレイピングにおける留意点など [3]Puppeteer の使い方など (1)参考にしたサイト (2)インストール (3)コードの骨格 (4)ページ操作のメソッドなど (5)画像のダウンロードなど (6)非ヘッドレスでの実行 (7)その他 [1]はじめに ある事がきっかけでウェブスクレイピングをやる機会がありました。 ウェブスクレイピング (Wikipedia) 私にとっては初めての経験だったのですが、面白かったので(ほぼ自分用ですが)メモしておくことにしました。 さて、ウェブスクレイピングにもいろいろなやり方があるようですが、まとまった量のデータを目的とするデータの形式で収集しようとすると、プログラムを作るのが手っ取り早いです。 また、対象がとてもシンプルなウェブページであれば、HTTP GET のレスポンスをライブラリを使って解析するのが効率的だと思いますが、JavaScriptが動作に関係する(例えば、ボタンをクリックして動作する)ようなサイトは、欲しいページ情報を得るまでが少々面倒だったりします。 そのような場合は、実際のブラウザを使って人が行う操作を自動化するのが手っ取り早いように思います。 そこで、今回は Puppeteer というツール(ライブラリ)を利用することにしました。 Puppeteer https://pptr.dev/ Puppeteer(Github) https://github.com/puppeteer/puppeteer 上記 Puppeteer のページには以下のように書かれています(Google翻訳による)。 Puppeteer は、DevTools プロトコルを介して Chrome/Chromium を制御するための高レベル API を提供する Node.js ライブラリです。 Puppeteer はデフォルトでヘッドレス モードで実行されますが、完全な (非ヘッドレス) Chrome/Chromium で実行するように構成できます。 また、FAQによると、Chrome DevTools チームがライ