參考文章
淺嚐 WebDriverIO - Eden Liu
【Day8】selenium-webdriver:爬蟲起手式,帶你認識所見即所得的爬蟲工具 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
Day 22 Puppeteer處理lazy load, SSR, 反爬蟲防禦, 高效地爬大量數據 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
安裝環境
- 建好 node 初始專案
1 | npm init |
- 安裝
1 | npm i puppeteer |
- 執行程式看看
1 | const puppeteer = require('puppeteer'); |
page.click 無效解決方法
有時候執行page.click無效,目前不確定甚麼原因,有找到方法解決,參考 Navigation after click not working regardless of actions I take · Issue #3670 · puppeteer/puppeteer
1 | async function nativeClick(page, button) { |
tag 裡面文字
HTML Element 裡面可以再做 querySelector
在做搜尋元件動作,也可以用XPATH,但XPATH不太熟的話,建議用JS去做會比較簡單。
Javascript .querySelector find \<div> by innerTEXT - Stack Overflow
iframe 處理方法
1 | const frameHandle = await page.$("iframe[id='frame1']"); |
frame用法跟 page差不多。
[Node.js打造API] 設定joi與config dotenv環境參數 — 1010Code
base auth
Implement HTTP Authentication API · Issue #426 · puppeteer/puppeteer
dialog 處理
Puppeteer,該如何判斷登入失敗跳出提示的動作?(順便想記錄第一次用到 Promise.race() XD) | 小馬彬的部落格
deno 編譯程式
可參考:deno 牌 puppeteer,真香! | 七日打卡_胡琦 - MdEditor
我有在 deno 編譯成exe程式,不過在電腦使用不能正常執行,但後來發現需要設定環境變數PUPPETEER_EXECUTABLE_PATH
指定你 Chrome 安裝路徑也可以跑。
其他
nodejs打包成桌面程式(exe)的進階之路 - ⎝⎛CodingNote.cc ⎞⎠
爬蟲、E2E 測試兩相宜的好工具 - Puppeteer | 卡斯伯 Blog - 前端,沒有極限
how to minimize browser to tray · Issue #4513 · puppeteer/puppeteer
Puppeteer爬蟲常用技巧 | 只是個打字的
奇妙的一行JS程式碼之完整解析 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天