iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0
AI & Data

Puppeteer 簡單快速建立自己的 Nodejs 爬蟲系列 第 8

Day 8 Puppeteer API 介紹 - class: Puppeteer

Puppeteer 模組提供了一個方法去實現Chromium。
文件上有提供一個範例

const puppeteer = require('puppeteer');

//.then這個方法是promis產生的
puppeteer.launch().then(async browser => {
  const page = await browser.newPage();
  await page.goto('https://www.google.com');
  // other actions...
  await browser.close();
});

這跟我們之前用的是一樣的

我們開始介紹class: Puppeteer的參數

在文章裡出現中的'[]'代表裡面的參數是可填可不填。
想要看詳細的option可以點選連結到doc裡面看。

  • puppeteer.connect(options)
    這個connect方法可以讓puppeteer連接到現有啟動的Chromium

  • puppeteer.createBrowserFetcher([options])
    這個可以建立一個新的BrowserFetcher實例。BrowserFetcher可以下載和管理不同版本的Chromium。
    像是DOC上的範例

    //建立一個browserFetcher實例
    const browserFetcher = puppeteer.createBrowserFetcher();
    //下在一個版本533271的Chromium
    const revisionInfo = await browserFetcher.download('533271');
    //接著指定puppeteer去與這版本的Chromium溝通
    const browser = await puppeteer.launch({executablePath: revisionInfo.executablePath})
    

    Chromium版本可以在這個網站取得http://omahaproxy.appspot.com/
    之後還會介紹到

  • puppeteer.defaultArgs([options])
    可以設定Chromium預設啟動的flags,像之前我們用過的headless,headless = true or false可以判斷看不看的到ui。
    也可以在launch時帶參數就好

  • puppeteer.executablePath()
    會回傳一個路徑,Puppeteer可以藉由這個路徑去找到Chromium。
    上面的executablePath也就是設定要launch的Chromium位置,
    而revisionInfo就是剛下載完的資訊

    const browser = await puppeteer.launch({executablePath: revisionInfo.executablePath})
    
  • puppeteer.launch([options])
    這就是基本的launch可以不帶參數,也可以帶像是env,ignoreHTTPSErrors等等。
    文件中可以看的到,有需要再去查就好。
    官網還有給出一個範例

    //把瀏覽器的聲音關掉
    const browser = await puppeteer.launch({
      ignoreDefaultArgs: ['--mute-audio']
    });
    

上一篇
Day 7 Puppeteer API 架構介紹
下一篇
Day 9 Puppeteer API 介紹 - class: BrowserFetcher
系列文
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲25

尚未有邦友留言

立即登入留言