Puppeteer環境搭建
簡介
Puppeteer是Google開發並開源的一款工具,可用程式碼驅動瀏覽器操作。
由於諸多優秀的特性,Puppeteer常被用在爬蟲與自動化測試上。詳細介紹參見官方Chrome/puppeteer/" target="_blank" rel="nofollow,noindex">README 。
Puppeteer本身是個NodeJS的庫,自動化指令碼也需要使用NodeJS編寫,如果對JS不瞭解建議先學習JavaScript基礎語法,或者使用Selenium等其他工具去實現。
對於一個陌生的工具,應當先檢查是否適合自己,再去嘗試使用,切莫盲目從眾。
配置
Node環境配置
下載並安裝NodeJS:
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz tar xf node-v8.12.0-linux-x64.tar.xz mv node-v8.12.0-linux-x64 /usr/local/lib ln -s /usr/local/lib/node-v8.12.0-linux-x64/bin/npm /usr/local/bin/ ln -s /usr/local/lib/node-v8.12.0-linux-x64/bin/node /usr/local/bin/
*(可選)配置淘寶的源,加速npm包的下載:
npm config set registry https://registry.npm.taobao.org
安裝Puppeteer
配置淘寶的Puppeteer下載源,用於安裝Chromium:
export PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i puppeteer
國內不配置時會在卡在下載Chromium
示例
新建一個test.js
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ ignoreHTTPSErrors: true, headless: false, args: ['--no-sandbox'] }); const page = await browser.newPage(); await page.goto('https://intest.tech'); await page.waitFor(5e3); await browser.close(); })();
執行:
node test.js
參考
https://github.com/cnpm/cnpmjs.org/issues/1246#issuecomment-341631992