iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 6
0
DevOps

Puppeteer系列 第 6

Puppeteer & PDF & Proxy & Screenshot-Fullpage

  • 分享至 

  • twitterImage
  •  

介紹

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 其實都長得差不多,程式碼都很簡短就可以使用了


上一篇
Puppeteer & 前後端共用 function
下一篇
Puppeteer & API class: Browser
系列文
Puppeteer30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言