热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

chrome+puppeteer

众所周知puppeteer模块大,是因为他包含了完整的Chromium(~170MBMac,~282

众所周知 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,代码如下。

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


以上所述就是小编给大家介绍的《chrome + puppeteer》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 我们 的支持!


推荐阅读
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • Python 工具推荐 | PyHubWeekly 第二十一期:提升命令行体验的五大工具
    本期 PyHubWeekly 为大家精选了 GitHub 上五个优秀的 Python 工具,涵盖金融数据可视化、终端美化、国际化支持、图像增强和远程 Shell 环境配置。欢迎关注并参与项目。 ... [详细]
  • 2012年7月30日,语言岛团队宣布其智能记单词软件V0.3.4.554版本正式开源。该版本不仅支持跨平台使用,还引入了多项创新功能,旨在帮助用户更高效地记忆单词。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本文详细介绍了如何使用 HTML 和 CSS 创建一个功能齐全的联系我们表单,包括布局和样式设计。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 探讨如何利用Electron框架,通过拖动HTML元素(如音乐列表项)到桌面来实现本地文件的复制。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • Webpack中实现环境与代码的有效分离
    本文探讨了如何在Webpack中有效地区分开发与生产环境,并实现代码的合理分离,以提高项目的可维护性和加载性能。 ... [详细]
author-avatar
天蝎騎著豬狂奔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有