iT邦幫忙

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

Puppeteer系列 第 3

Puppeteer & Launch 初始化

介紹
Puppeteer 在初始化 browser 的時候有許多不錯的參數可以使用
這次主要介紹的地方是在 var browser = puppeteer.launch({option}) 這裡面的option

option 是一個 Object 在瀏覽器上配置選項,可以有以下字段:

----- 入門 常用 -----
headless < Boolean > 是否運行在瀏覽器背景模式,就是phantomjs模式 。

----- 推薦 好用 -----

userDataDir < 字符串 > 路徑到一個用戶數據目錄,例如登入過後把這個狀態儲存起來會增快很多速度。

----- 有用到再來看 -----

ignoreHTTPSErrors < Boolean > 是否忽略HTTPS錯誤。默認為false。

executablePath < string > 運行 Chromium或Chrome可執行的路徑,而不是捆綁的Chromium。如果
executablePath 是相對路徑,則相對於當前工作目錄進行解析。

slowMo < number > 使 Puppeteer 操作速度減少速度(毫秒數)。方便於觀察

args < Array < string > > 傳遞給瀏覽器實例的其他參數。

handleSIGINT < Boolean > 在Ctrl-C上關閉瀏覽器進程。默認為true。

handleSIGTERM < Boolean > 關閉SIGTERM上的瀏覽器進程。默認為true。

handleSIGHUP < Boolean > 在SIGHUP上關閉瀏覽器進程。默認為true。

timeout < number > 等待瀏覽器實例啟動的最長時間(以毫秒為單位)。默認為30000(30秒)。通過0禁用超時。

dumpio < Boolean > 是否管瀏覽器進程 stdout 和 stderr 成 process.stdout 和process.stderr。 默認為false。

env < Object > 指定對瀏覽器可見的環境變量。默認為process.env。

devtools < Boolean > 是否為每個標籤自動打開 DevTools 面板。headless只能為false。

以上這個 puppeteer.launch 會返回一個< Promise < Browser > 所以要用 await 去接他

總結

launch 設定很多 ,常用到是 headless 無頭模式的切換(類似phantomjs),devtools 也常會打開來除錯,因為除了爬蟲,也會用來使用 e2e 測試 ,如果有要慢動作的除錯也可以把 slowMo 做調整,這些參數裡面個人覺得還有一個很棒的就是 userDataDir 這個可以讓目前做的事情有個暫存效果cook之類的,等於可已壓縮一些流程,常見的紀錄cookies ,登入後下次就不用在從跑一次auth的流程


上一篇
Puppeteer 基本設定
下一篇
Puppeteer & 加快E2E測試與爬蟲速度
系列文
Puppeteer30

尚未有邦友留言

立即登入留言