前幾天 Google 發布了 Puppeteer:一個可以控制 Chrome Headless 的 nodejs library。
透過 demo code 可以看到要產生 PDF 也好、要做 screen shot 也好,基本上都可以在數行以內解決:
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({path: 'example.png'});
browser.close();
})();
感覺就是拿來做壞事的好工具呀,也不用寫什麼 JavaScript emulator 去取得實際的網頁 DOM 狀態了 XD
官方文件已經有 Chrome Headless + Pupetteer 的網頁 debug demo:https://developers.google.com/web/updates/2017/04/headless-chrome