介紹
Puppeteer 入門後可以加快一些腳步來多看一些範例,印出PDF , Proxy, 全頁列印 三個功能
PDF的使用已經包含在page裡面了所以只要使用 page.pdf 在指定要輸出path與 fotmat 大小格式就可以了
另外 pdf輸出也支援 HeadLess模式
'use strict';
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle2'});
await page.pdf({
path: 'hn.pdf',
format: 'letter'
});
await browser.close();
})();
如果有使用 proxy server可以在 launch 時候用的args增加參數,使用參數時格式要符合
'use strict';
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({
args: [ '--proxy-server=127.0.0.1:9876' ]
});
const page = await browser.newPage();
await page.goto('https://google.com');
await browser.close();
})();
要多載入一個lib,如果要全頁列印就只要把 fullPage 打開,這時候可以讓page模擬不同裝置可以用不同裝置來印出輸出結果, const devices = require('puppeteer/DeviceDescriptors');
'use strict';
const puppeteer = require('puppeteer');
const devices = require('puppeteer/DeviceDescriptors');
(async() => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.emulate(devices['iPhone 6']);
await page.goto('https://www.nytimes.com/');
await page.screenshot({path: 'full.png', fullPage: true});
await browser.close();
})();
總結
Puppeteer 一次介紹完 PDF , Proxy , Screenshot-Fullpage 其實都長得差不多,程式碼都很簡短就可以使用了