
Puppeteer 代理接入
產品介紹
Puppeteer 是由 Google Chrome 團隊維護的開源 JavaScript/TypeScript 程式庫,透過 DevTools 協定(CDP)或 WebDriver BiDi 高階 API 控制 Chrome 與 Firefox。 Puppeteer 提供透過瀏覽器自動化協定控制 Chrome 與 Firefox 的 JavaScript API,可在無可見視窗的模式下執行。它適合撰寫可重複的頁面互動、渲染與測試任務,代理設定則作用於腳本啟動的瀏覽器程序,需要與實際使用的瀏覽器和驗證方式配合。
核心功能
真實瀏覽器渲染與無頭控制:預設以無頭模式(Headless)執行,也可開啟完整介面(Headful);支援完整的 DOM 渲染、JavaScript 執行、表單互動、網路請求攔截、效能時間軸分析以及產生頁面截圖與 PDF。
- JavaScript 瀏覽器控制:Puppeteer 的 API 可以驅動 Chrome 與 Firefox,完成頁面導航、點擊、表單填寫和指令碼執行。它預設支持無頭運行,也能生成頁面截圖與 PDF,因此既適合自動化測試,也能用於渲染內容和生成網頁報告。
- 無頭模式執行:工作流由代碼控制瀏覽器進程與頁面,用戶可為不同任務建立瀏覽器上下文並儲存需要的結果。與直接發送 HTTP 請求的庫相比,它能夠運行頁面 JavaScript 並操作真實頁面,但也需要管理瀏覽器資源與等待條件。
適用工作流程
例如生成某個網站的定期截圖時,可以在指令碼中統一設定訪問頁面、等待內容、輸出圖片和錯誤處理。代理應配置在實際啓動的瀏覽器連接中,認證方式也要與瀏覽器配合;只改變 Node.js 進程的網路設定不一定覆蓋瀏覽器流量。
- SPA 動態網頁擷取與自動化測試:適用於抓取依賴用戶端 JS 渲染的單頁應用程式(SPA)、自動產生視覺化報表快照、端到端(E2E)UI 測試及排程頁面巡檢。
- 透過在 `puppeteer.launch()` 的啟動參數中傳入 `--proxy-server` 設定代理,並使用 `page.authenticate()` 處理代理使用者名稱密碼驗證;針對大規模公開頁面渲染與抓取,建議搭配高性價比、低延遲的資料中心代理。