puppeteer-automation 是做什麼的?
使用 Puppeteer 進行瀏覽器自動化的專家指引,涵蓋網頁爬取、測試、螢幕截圖以及在無頭 Chrome 中執行 JavaScript 的最佳實踐。
功能概述
- 網頁爬取:提取靜態與動態內容,包括表單提交與無限滾動頁面。
- 自動化測試:模擬使用者互動,驗證 UI 元素與頁面行為。
- 螢幕截圖:捕獲全頁或特定元素的截圖,支援自訂解析度與格式。
- JavaScript 執行:在頁面上下文中注入並執行自訂腳本,操作 DOM 或獲取資料。
- 無頭模式:在無頭 Chrome 中運行,節省資源並適合 CI/CD 流程。
支援的平台
- Node.js:所有版本,建議使用最新的 LTS 版本。
- Puppeteer:版本 10.0.0 以上。
- 作業系統:Windows、macOS、Linux。
使用方法
安裝
npm install puppeteer
基本範例
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
進階技巧
- 等待元素出現:使用
page.waitForSelector確保頁面載入完成。 - 處理彈出視窗:監聽
dialog事件並自動應答。 - 模擬行動裝置:設定 User-Agent 與 viewport。
- 錯誤處理:使用 try-catch 區塊捕獲執行錯誤。
注意事項
- 請遵守目標網站的 robots.txt 條款與使用條款。
- 頻繁請求可能導致 IP 被封鎖,請適當加入延遲。
- 使用無頭模式時,需確保系統已安裝 Chrome 或 Chromium。