PuppeteerのちょっとしたTipsいろいろ
ちょっと用事があってPuppeteerを初めて触ってみました。
以前、バイトをしていた時にSeleniumを触っていたことがありましたが、そちらと比べると、サクッとインストールできるし(npmだけで入る)、async/awaitで現代的だし、素晴らしいです。
Puppeteer触ってて調べたことをメモしておく。ちなみにv1.12.1。
PDFにマージンを設定する
const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto('https://example.com'); await page.pdf({ path: savePath, format: 'A4', margin: { top: 30, left: 30, right: 30, bottom: 30 } }); await browser.close()
こんな感じ。
ブラウザを表示する(非ヘッドレスにする)
launch()
を呼ぶ時に、
await puppeteer.launch({headless: false});
としてあげる。
ちなみに、要注意な点として、非ヘッドレス状態では、PDF出力は利用できずエラーになります。
(Error: Protocol error (Page.printToPDF): PrintToPDF is not implemented
となる)
直接HTMLをブラウザに流し込む
Webサイトを開くのではなく、直接HTMLの文字列を流し込みたい時。
await page.setContent('<h1>Hello Puppeteer!!</h1>');
こんな感じ。
これと、ejsを組み合わせてちょっと企んでますが、その話はまた今度。