Puppeteer介紹
從Node.js中以程式化方式控制Chrome。 Puppeteer是一個我們可以使用的Node庫,用於控制一個無界面Chrome實例。我們基本上是使用Chrome,但以JavaScript進行程式化操作。 使用它,我們可以: 爬取網頁 自動化表單提交 執行任何種類的瀏覽器自動化 追蹤頁面加載性能 創建使用服務器端渲染的單頁應用程序的版本 生成網頁的截圖 創建自動化測試 從網頁生成PDF文件 它是由Google開發的。它本身並不會解鎖任何新功能,但它將我們需要處理的許多細節抽象出來,而不使用它。 簡而言之,它讓事情變得非常簡單。 由於它在初始化時啟動一個新的Chrome實例,它可能不是最高效的。然而,它是使用實際瀏覽器(在幕後)進行自動測試的最準確的方法。 準確地說,它使用的是Chromium,也就是Chrome的開源部分。這意味著您沒有Google許可的專有編解碼器(MP3,AAC,H.264等),也沒有與Google服務(如崩潰報告,Google更新等)的集成,但從編程的角度來看,它應該與Chrome完全相似(除了媒體播放,如前所述)。 安裝Puppeteer 首先要使用以下命令安裝: npm install puppeteer 這將下載並打包最新版本的Chromium。 您也可以選擇安裝puppeteer-core,讓puppeteer運行您已安裝的本地Chrome。在某些特殊情況下這很有用(參見[puppeteer vs puppeteer-core](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteer-vs-puppeteer-core))。通常,您只需選擇puppeteer。 使用Puppeteer 在一個Node.js文件中,引入它: const puppeteer = require('puppeteer'); 然後,我們可以使用launch()方法創建一個瀏覽器實例: (async () => { const browser = await puppeteer.launch() })() 我們也可以這樣寫: puppeteer.launch().then(async browser => { //... }) 您可以將選項對像傳遞給puppeteer.launch()。最常見的選項是: puppeteer.launch({ headless:false }) 以在Puppeteer執行操作時顯示Chrome。這樣可以方便地查看正在發生的事情並進行調試。 我們使用await,所以我們必須將此方法調用包裹在一個異步函數中,我們會立即調用它(/ javascript-iife /)。 接下來,我們可以使用browser對像上的newPage()方法獲取page對象: (async () => { const browser = await puppeteer.launch() const page = await browser....