📄

Puppeteerでスクレイピングしたサイトのスクリーンショットを撮影する

2023/04/28に公開

Puppeteerとは

Puppeteerは、Googleが開発したJavaScriptのライブラリで、Node.js上で動作するヘッドレスブラウザの制御やWebスクレイピング、Webアプリケーションの自動テストなどに利用されます。

用途としては、スクリーンショットの作成、PDFの生成、フォームの自動入力、キーボード・マウスイベントのシミュレーションなど、様々なタスクを実行することができます。

Puppeteerは、WebスクレイピングやWebアプリケーションの自動テスト、スクレイピングにおいては、多くの手動作業を自動化することができるため、非常に便利なツールとなっています。

実装方法

今回はPuppeteerを使って、対象サイトのスクリーンショットを撮影していきます。

まずはディレクトリの作成を行います。

$ mkdir puppeteer-screenshot
$ cd puppeteer-screenshot

yarn initして、Puppeteerをインストールします。

$ yarn init
$ yarn add puppeteer

index.tsを作成します。

$ touch index.ts

index.tsにスクリーンショットを撮影するためのコードを記述します。

index.ts
const puppeteer = require('puppeteer');

// ヘッドレスブラウザで店舗診断のスクリーンショットを撮る
(async () => {
    // スクリーンショットを撮るURL
    const url = 'https://example.com/'

    const browser = await puppeteer.launch({
        headless: false
    });
    const page = await browser.newPage();
    // 取得したいスクリーンショットの幅、高さを設定
    page.setViewport({ width: 1200, height: 800 })

    await page.goto(url);

    // 表示まで少し待機
    await page.waitForTimeout(1000);

    await page.screenshot({ path: 'screenshot.png', fullPage: true })
    await browser.close();
})();

コードを動作させます。

$ node index.ts

簡単にスクリーンショットを取得することができました!

Discussion