chrome + puppeteer

发布时间:2020-06-24 02:24:19发布者:admin浏览数:

众所周知 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 不仅仅是个浏览器。

  网站建设分类
程序开发 |  系统教程 |  软件应用 |  图形图像 |  网络应用 |  站长教程 |  网站建设 |  视频教程 |  硬件维护 |  IT资讯 |  中国it动力网
本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件!
如侵犯到您的权益,请及时通知我们,我们会及时处理。
Copyright @ 2019 中国it动力网 网站导航