Puppeteerは、Node.jsで動作するヘッドレスChromeを操作するためのライブラリです。ヘッドレスChromeは、ブラウザのエンジンであるChromiumをバックエンドで動かし、プログラムからブラウザを制御できるようにします。
Puppeteerを使用すると、Webページのスクリーンショットを撮影したり、自動的にフォームを入力したり、DOM要素を操作したりすることができます。また、ページのスクレイピングやユニットテストなど、さまざまなタスクに使用することができます。
Puppeteerは、非常にシンプルで直感的なAPIを提供しており、使いやすいです。また、Chrome DevTools Protocolを使用しており、高度な操作やデバッグも可能です。
Puppeteerは、Node.jsのパッケージマネージャーであるnpmを使用してインストールすることができます。インストール後、Puppeteerのブラウザインスタンスを作成して、様々な操作を実行することができます。
例えば、以下のコードは、Puppeteerを使用してGoogleの検索結果のスクリーンショットを撮影する例です。
javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com');
await page.type('input[name="q"]', 'Puppeteer');
await page.click('input[name="btnK"]');
await page.waitForNavigation();
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
})();
この例では、Puppeteerを使用してブラウザを起動し、Googleのトップページにアクセスし、検索ボックスに”Puppeteer”と入力し、検索ボタンをクリックして検索結果ページに移動し、スクリーンショットを撮影しています。
javascript
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com');
await page.type('input[name="q"]', 'Puppeteer');
await page.click('input[name="btnK"]');
await page.waitForNavigation();
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
})();
Puppeteerは、Webスクレイピングやテストを自動化するための強力なツールであり、Node.jsにおけるブラウザ操作のためのデファクトスタンダードです。
参考ページ
https://gihyo.jp/article/2022/09/rapid-learning-puppeteer-01