ヘッドレスブラウザのChromiumを操作するライブラリ「Puppeteer」を使ってみます。
使い方
Puppeteerを使って、ページ全体のスクリーンショットの取得を試してみます。
プロジェクトディレクトリに移動して、package.jsonを作成します。
npm init -y
PuppeteerとChromiumをインストールします。
npm install puppeteer --save
補足として、下記の場合はChromiumは含まれず、Puppeteerのみのインストールになるようです。
npm install puppeteer-core --save
screenshot.jsというファイルを作成して、以下の内容にします。
const puppeteer = require('puppeteer');
(async () => {
// ブラウザを起動して、新しい空白ページを開く
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 指定したURLに移動
await page.goto('https://cly7796.net/blog/');
// 画面サイズの指定
await page.setViewport({width: 1080, height: 1024});
// スクリーンショットを取得して保存
await page.screenshot({
path: 'full_screenshot.png',
fullPage: true
});
// ブラウザを閉じる
await browser.close();
})();
上記の場合、このブログのトップ(https://cly7796.net/blog/)のスクリーンショットの取得になるので、URLは適宜変更してください。
これで処理の準備ができたので、実際に試してみます。
node screenshot.js
これでページのスクリーンショットの取得ができました。
full_screenshot.png
コメントが承認されるまで時間がかかります。