iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 2
0

介紹

如何快速入門 Puppeteer 先介紹一個起手式範例,簡單幾行Code就完成網頁拍照效果,感受一下 Puppeteer的簡潔語法與提供的好用的Api

程式碼解析

安裝完 node i puppeteer 之後直接使用就可以了 ,未來都會看到以下起手式基本的就是要
起一個

  1. puppeteer.launch (開一個 chromium 瀏覽器,這個chromium瀏覽器也可以像 Phantomjs 使用背景模式(HeadLess),這個下一章節設定檔的部分再來說明)
  2. const page = await browser.newPage();(這個是開分頁的意思)

以上兩個步驟是起手式

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'});

  await browser.close();
})();

Puppteer 使用 async await ,跟其 nightwatch 與 selenium chainable 的方式不太一樣

開起瀏覽器後開完分頁,接下來就指定分頁要到哪個網址

await page.goto('https://example.com'); 真的都很語意話 , 接下來就說要拍照了

await page.screenshot({path: 'example.png'});

最後如果要觀察結果就不要 browser.close 這邊是有把瀏覽器關起來

await browser.close();

總結

用 Puppteer 寫做 爬蟲 或 E2E 測試 是一件很幸福的事情,語法簡單文件齊全 ,不過他只支援目前自家的瀏覽器,選擇之時要考慮一下,下一篇來介紹 launch 的設定檔


上一篇
Puppeteer 介紹
下一篇
Puppeteer & Launch 初始化
系列文
Puppeteer30

1 則留言

0
pilipala
iT邦新手 5 級 ‧ 2018-01-10 17:24:29

請問為什麼我只是把您上面的 https://example.com 改成 https://www.facebook.com/ 就出現錯誤?
截圖
但是改成 puppeteer.launch({headless: false}) 就正常?

我要留言

立即登入留言