chrome + puppeteer
眾所周知 puppeteer 模組大,是因為他包含了完整的 Chromium (~170MB Mac, ~282MB Linux, ~280MB Win) 。
那麼,為什麼不直接呼叫本機 chrome 呢?
思路來源
前段時間 GoogleChromeLabs 釋出了 carlo 神器,6的一逼啊。
但我測試後發現,功能太少,然後看了下原始碼,然後就有了這篇文章。
puppeteer-core
其實 puppeteer 也只是 Chromium + puppeteer-core 而已,所以我們可以直接安裝 puppeteer-core 然後呼叫本機 Chrome 就好了。
目前版本,我本機安裝 puppeteer-core 約 2.1MB,非常小。
然後我們直接呼叫 carlo 的 find_chrome 指令碼,他可以跨平臺的找到本機安裝的 chrome, chromium, canary 版本。
接著,傳參啟動 puppeteer-core,程式碼如下。
[JavaScript] 純文字檢視 複製程式碼const puppeteer = require('puppeteer-core'); const findChrome = require('./find_chrome'); (async () => { const browser = await puppeteer.launch({ executablePath: findChrome().pop(), pipe: true, defaultViewport: null, headless: false, userDataDir: '.profile', // args, }); const page = await browser.newPage(); await page.goto('https://www.bilibili.com/'); await page.screenshot({ path: 'example.png', fullPage: true }); await browser.close(); })();
其中 launch 部分的引數是從 carlo 借鑑的,想找到更詳細的引數,還是看 puppeteer 官網文件吧。
應用
就 puppeteer 來說,其實就是個 js 操作 chrome 瀏覽器的東西,常見的應用也只是用他來寫測試,爬蟲等。
但作為開發者的我們,可以用他來寫 node ui 介面,雖然沒 electron 那麼高的自定義,但至少非常小,非常省事的實現了 ui。
比如可以寫自動簽到,自動領取積分,等工具。
發揮你的想象吧。
小結
GoogleChromeLabs 是個神奇的組織,一次次給我們驚喜,如 ndb, carlo, quicklink 等。
而且向我們證明了 chrome 不僅僅是個瀏覽器。
相關文章
- puppeteer chrome/chrome canary 登入瀏覽器Chrome瀏覽器
- 手動下載 Chrome,解決 puppeteer 無法使用問題Chrome
- Puppeteer筆記(一):Puppeteer簡介筆記
- Puppeteer 初探
- puppeteer初探
- linux puppeteer 截圖提示缺少chrome-linux/chrome error while loading shared libraries: libXdamage.so.1LinuxChromeErrorWhile
- [譯] JavaScript 自動化爬蟲入門指北(Chrome + Puppeteer + Node JS):和 Headless Chrome 一起裝逼一起飛JavaScript爬蟲ChromeJS
- Puppeteer入門初探
- node爬蟲-使用puppeteer爬蟲
- Puppeteer爬蟲實戰(三)爬蟲
- puppeteer爬蟲的奇妙之旅爬蟲
- Puppeteer之大屏批量截圖
- 爬蟲利器 Puppeteer 實戰爬蟲
- puppeteer 呼叫谷歌翻譯api谷歌API
- VSCode 中 Markdown Preview Enhanced 外掛利用 Chrome (Puppeteer) 匯出 PDF 檔案使用說明與問題解決VSCodeViewChrome
- Laravel 配合 puppeteer 抓取 SPA 頁面Laravel
- Scrapy 框架介紹之 Puppeteer 渲染框架
- puppeteer踩坑經驗之談
- Puppeteer爬取網頁資料網頁
- 我常用的puppeteer爬蟲api爬蟲API
- 無頭瀏覽器 Puppeteer 初探瀏覽器
- puppeteer安裝過程中出現:Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOA D" env variable to skip download.
- puppeteer介紹(一)爬蟲,效能,注入爬蟲
- 使用node+puppeteer破解驗證碼
- Docker 系列 - 05 - 入門 & Puppeteer 服務Docker
- Puppeteer的入門教程和實踐
- puppeteer去掉同源策略及請求攔截
- Puppeteer 初探之前端自動化測試前端
- Puppeteer E2E測試入門
- 截圖的誘惑:Docker部署Puppeteer專案Docker
- puppeteer 頁面爬取例項(元素遍歷)
- puppeteer在開發過程中的實踐
- puppeteer 安裝失敗的解決辦法
- 使用node+puppeteer+express搭建截圖服務Express
- 利用puppeteer破解極驗的滑動驗證
- 在wsl中部署puppeteer的相關筆記筆記
- CukeTest+Puppeteer的Web自動化測試(二)Web
- CukeTest+Puppeteer的Web自動化測試(一)Web