首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Node.js把HTML转成PDF格式

翻译:疯狂的技术宅 原文:https://blog.risingstack.com/pdf-from-html-node-js-puppeteer/ 在本文中,我将展示如何使用 Node.jsPuppeteer...方案1:从 DOM 制作屏幕截图 方案2:仅使用 PDF 库 最终方案3:Node.jsPuppeteer Headless Chrome 样式控制 将文件发送到客户端并保存 在 Docker...如果你没有特殊需求,例如在 PDF 中选择文本或对文本进行搜索,那么这就是一种简单易用的方法。 此方法简单明了:从页面创建屏幕截图,并把它放到 PDF 文件中。非常直截了当。...最终方案3:基于 Node.jsPuppeteer Headless Chrome 什么是 Puppeteer?...它本质上是一个可以从 Node.js 运行的浏览器。如果你读过它的文档,其中首先提到的就是你可以用 Puppeteer生成页面截图PDF。优秀!这正是我们想要的。

6.3K30

前端使用puppeteer 爬虫生成《React.js 小书》PDF并合并

生成页面屏幕截图 PDF。 抓取 SPA并生成预渲染内容(即“ SSR”)。 自动化表单提交, UI测试,键盘输入等。 创建最新的自动化测试环境。...2.3 一些可能会用到的 puppeteer API // 新建 reactMiniBook.js, 运行 node reactMiniBook.js 生成pdf const puppeteer =...简单说下:实现功能主流程。从上面 React.js小书截图来看。...3.7 返回宽高,用于设置视图大小 3.8 设置视图大小,创建生成 pdf 4、关闭浏览器 具体代码:可以查看这里爬虫生成《React.js小书》的 pdf每一小节的代码 // node 执行这个文件...// 笔者这里是: node src/puppeteer/reactMiniBook.js 即可生成如下图:每一小节(0-46小节)的 pdf ?

2.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

Web UI自动化框架-Puppeteer

Puppeteer 能做什么 生成页面 PDF。...使用最新的 JavaScript 浏览器功能直接在最新版本的Chrome中执行测试。 捕获网站的 timeline trace用来帮助分析性能问题。 测试浏览器扩展。...安装报错 本地node版本v10.11.0,默认安装puppeteer最新3.1.0版本时,一直报错: $ npm install puppeteer --save > puppeteer@3.1.0...5、关闭浏览器 执行无浏览器界面结束后,会在项目目录下生成一张截图: Chrome自动生成脚本扩展插件 功能 Chrome扩展程序,用于记录浏览器的交互并生成Puppeteer脚本。...-记录点击次数,输入事件等 -记录屏幕截图。 -导航时暂停录音。 -监视记录的事件。 -导出到Puppeteer代码。 -调整生成代码的设置。

1.9K20

Puppeteer 入门指引

比如: 对页面元素截图页面保存为 PDF 爬取 SPA(Single-Page Application)网站的内容并为 SSR(Server-Side Rendering)网站生成 pre-render...node screenshot.js 生成图片预览: Puppeteer 初始的窗口尺寸 800x600px, 这也决定了对页面截图的尺寸 800x600px。...format: "a2", }); await browser.close(); })(); 执行 savePDF.js node savePDF.js 生成PDF 预览: 生成 PDF...在浏览器执行代码中使用 debugger 目前有两种执行上下文:运行测试代码的 node.js 上下文运行被测试代码的浏览器上下文,我们可以使用 page.evaluate() 在浏览器上下文中插入...screenshot.js Windows 下面可以使用cross-env npx cross-env DEBUG=puppeteer:* node screenshot.js 协议流量可能相当复杂,

1.5K50

用 Javascript Node.js 爬取网页

这就具备了一些以前没有的可能性: 你可以获取屏幕截图生成页面 PDF。 可以抓取单页应用并生成预渲染的内容。 自动执行许多不同的用户交互,例如键盘输入、表单提交、导航等。...通常你会想要截取网站的屏幕截图,也许是为了了解竞争对手的产品目录,可以用 puppeteer 来做到。...让我们尝试在 Reddit 中获取 r/programming 论坛的屏幕截图 PDF,创建一个名为 crawler.js的新文件,然后复制粘贴以下代码: 1const puppeteer = require...(error) 16 } 17} 18 19getVisual() getVisual() 是一个异步函数,它将获 URL 变量中 url 对应的屏幕截图 pdf。...完成操作并完成页面加载后,将分别使用 page.screenshot() page.pdf() 获取屏幕截图 pdf

10K10

前端工程师的一大神器——puppeteer

前端使用puppeteer 爬虫生成《React.js 小书》PDF并合并 点击下方卡片关注我、加个星标,或者查看源码等系列文章。...学习源码整体架构系列、年度总结、JS基础系列 一、Puppeteer简介 Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或...Chrome,利用Puppeteer可以获取页面DOM节点、网络请求和响应、程序化操作页面行为、进行页面的性能监控优化、获取页面截图PDF等,利用该神器就可以操作Chrome浏览器玩出各种花样。...pdf 除了利用截图保留快照外,还可以使用pdf保留快照。...async function main() { // 启动浏览器,访问页面的操作 // 根据网页内容生成pdf文件,使用Page.pdf——注意:必须在无头模式下才可以调用

1.3K50

Puppeteer实战指南:自动化抓取网页中的图片资源

Puppeteer 简介Puppeteer是Google Chrome团队开发的一个Node库,它提供了一个高级API来控制Chrome或Chromium浏览器。...Puppeteer可以进行网页自动化操作,包括导航、屏幕截图生成PDF、捕获网络活动等。2. 环境搭建在开始之前,确保你的开发环境中安装了Node.jsnpm。...接着,通过npm安装Puppeteer:npm install puppeteer3. 抓取网页图片的策略1. 环境与工具介绍首先,我们需要Node.js环境以及npm(Node包管理器)。...URL // 其他需要的启动参数... ] }); const page = await browser.newPage(); // 接下来添加页面导航操作的代码... //...处理动态加载的图片对于通过JavaScript动态加载的图片,可能需要更复杂的等待策略,如等待特定的网络请求完成或使用page.waitForFunction等待页面达到某个状态。6.

14810

Puppeteer实战指南:自动化抓取网页中的图片资源

Puppeteer是Google Chrome团队开发的一个Node库,它提供了一个高级API来控制Chrome或Chromium浏览器。...Puppeteer可以进行网页自动化操作,包括导航、屏幕截图生成PDF、捕获网络活动等。 2. 环境搭建 在开始之前,确保你的开发环境中安装了Node.jsnpm。...接着,通过npm安装Puppeteer: npm install puppeteer 3. 抓取网页图片的策略 1. 环境与工具介绍 首先,我们需要Node.js环境以及npm(Node包管理器)。...URL // 其他需要的启动参数... ] }); const page = await browser.newPage(); // 接下来添加页面导航操作的代码....处理动态加载的图片 对于通过JavaScript动态加载的图片,可能需要更复杂的等待策略,如等待特定的网络请求完成或使用page.waitForFunction等待页面达到某个状态。 6.

14210

Puppeteer 初探之前端自动化测试

puppeteer功能 1.利用网页生成PDF、图片 2.爬取SPA应用,并生成预渲染内容(即“SSR” 服务端渲染) 3.可以从网站抓取内容 4.自动化表单提交、UI测试、键盘输入等 5.帮你创建一个最新的自动化测试环境...,我们运行 node index.js 如果看到目录下有生成图片y.qq.png的话,恭喜你,我们可以开始继续往下学习puppeteer了。...体验第二个demo,页面性能检测 Puppeteer Trace API Trace API 主要是利用Chrome Performance,生成页面性能追踪的文件 trace.json,在Chrome...主要使用 tracing.start,stop生成trace.json文件 trace.json 接下来我们打开Chrome的开发者工具,进入到Performance栏目下,把刚才的trace.json...拖上去就能看到数据了 总结 通过上面两个例子,我们看到了puppeteer可以做UI自动化测试页面性能检测,其实他的功能远远不止于此,比如还可以做爬虫,去爬取github的文章或是掘金上的博客,总之,

13K64

如何使用PuppeteerNode JS服务器上实现动态网页抓取

本文将介绍如何使用PuppeteerNode JS服务器上实现动态网页抓取,并给出一个简单的案例。...Browser对象可以创建多个Page对象,每个Page对象对应一个浏览器标签页,可以用来加载操作网页。Page对象提供了一系列的方法,可以模拟用户的各种行为,如输入、点击、滚动、截图PDF等。...可以通过npm或yarn来安装:// 使用npm安装npm i puppeteer// 使用yarn安装yarn add puppeteer安装完成后,就可以在Node JS代码中引入Puppeteer...库,并使用它来启动浏览器创建页面:// 引入puppeteer库const puppeteer = require('puppeteer');// 启动浏览器并创建页面(async () => {...page.screenshot(options)或page.pdf(options)方法来保存网页的截图PDF文件。

66310

deno牌puppeteer,真香!

至于在 Deno中该如何使用 Puppeteer,如果您只是想简单运用,跟着Copy攻城狮的步伐就够了,如果您想深入了解,建议深入到源码中学习!...puppeteer常常被用来生成页面屏幕截图PDF、实现SSR、自动化测试等等,在业界也有不少企业级的运用,比如有赞商城前端团队使用puppeteer搭建统一海报渲染服务,TCB 的云函数也支持 puppeteer.../Contents/MacOS/Google\ Chrome', }); // 打开掘金并截图生成pdf const page = await browser.newPage(); await page.goto...就能获取到如下结果,在当前目录生成juejin.pngjuejin.pdf: puppetter_deno 获取掘金酱的个人成就 原本想从掘金的搜索入口入手,先从关键字搜索到用户列表,再从列表中的用户链接跳转到个人页...puppeteer能获取Node同样优秀的体验,对Copy攻城狮来说,多一份代码多一种选择,大胆地尝试,总会有收获,哪怕只是微不足道的收获。

1.1K30

Web UI自动化框架对比

自动化化框架简介功能支持编程语言自动生成代码插件环境要求Puppeteer提供建立在DevTools协议(devtools-protocol),控制Chrome或Chromium的高阶API node库...Puppeteer默认无界面运行,不过可以通过配置变为有界面运行Chrome或Chromium• 生成页面 PDF。 • 抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。...JavaScriptChrome插件 puppeteer-recordernode版本不低于v6.4.0,但是async/await只在Node v7.6.0或更高的版本支持。...• 测试与浏览器的兼容性; • 测试系统功能; • 支持自动录制动作,自动生成 .NET、Perl、Python、Ruby Java 等不同语言的测试脚本。...>=8SikuliXSikuli可利用屏幕截图直接引用 GUI 元素进行编程,点击界面函数按钮按照提示截图即可完成编程。

1.1K20

介绍 GitHub 上受欢迎的 10 个开源项目

1 Puppeteer https://github.com/GoogleChrome/puppeteer Stars 12411 Puppeteer 是一个控制 headless Chrome 的 Node.js...它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置使用完整的(非 headless)Chrome。...在浏览器中手动完成的大多数事情都可以通过使用 Puppeteer 完成,如: ● 生成屏幕截图 PDF 页面 ● 检索 SPA 并生成预渲染内容(即“SSR”) ● 从网站上爬取内容等。...这个列表的主要目的是收集一些有趣的例子,并解释它们如何运行,如果您是初学者,您可以使用这些注释来深入了解JavaScript。...deeplearn.js最初由Google Brain PAIR团队开发,浏览器构建强大的交互式机器学习工具,但它可以用于从教育,模型理解到艺术项目的一切。

96210

GitHub 上 9 月份最火的开源项目

Node.js 使用高效、轻量级的事件驱动、非阻塞 I/O 模型。Node.js 的生态系统是目前最大的开源包管理系统。...在 Node 中,Http 是首要的。Node 创建 http 服务器作了优化,所以你在网上看到的大部分示例库都是集中在 web 上(http 框架、模板库等)。...在浏览器中执行的大多数事情都可以使用 Puppeteer 完成,比如: ● 生成屏幕截图 PDF 页面。 ● 检索 SPA 并生成预渲染内容(即“SSR”)。 ● 从网站上刮下内容。...Best Resume Ever 是一个帮助你快速生成漂亮简历的工具,它基于 Vue LESS,生成的简历可导出 PDF 格式。...Vespa 可实现: ● 使用类似 sql 的查询非结构化搜索来选择内容 ● 组织所有匹配以生成数据驱动页面 ● 通过手动或机器学习的相关性模板对匹配结果排序 ● 每秒数千次实时写入持久性数据

1.3K40

Puppeteer已经取代PhantomJs

官网 https://pptr.dev/ 就如官网所介绍的,pptr可以做以下的事情: 生成页面屏幕截图PDF。 爬取SPA(单页应用程序)并生成预渲染的内容(即“ SSR”(服务器端渲染))。...在实践中我们经常会遇到如何判断一个页面加载完成了,什么时机去截图,什么时机去点击某个按钮等问题,那我们到底如何去等待加载呢?...在使用 Puppeteer 时我们几乎一定会遇到在这两个环境之间交换数据:运行 PuppeteerNode.js 环境 Puppeteer 操作的页面 Page DOM,理解这两个环境很重要...将 Page DOM Environment 中元素对象封装成对应的 Node.js 对象,这样可以直接这些对象的封装函数进行操作 Page DOM 一些简单的使用例子 1、页面截图 我们使用 Puppeteer...在自动化测试中,经常会遇到对于文件的上传下载的需求,那么在 Puppeteer如何实现呢?

6.1K10

在 Docker 中配置 Headless Chrome Node.js 服务器

在本教程中,我们将演示如何创建 Dockerfile 以在 Node.js 中设置无头 Chrome 浏览器。...Headless Chrome 与 Node.js Node.js 是 Google Chrome 开发团队使用的主要环境,它拥有用于与 Chrome 通信的原生集成库:Puppeteer.js。...结合 Node.js 服务器 Chromium 容器 在继续之前,我们需要修改一些代码,因为要作为微服务来获取给定网站的屏幕截图。...运行 docker build -t headless:node后,我们将得到一个带有 Node.js 服务的镜像一个 Headless Chrome 浏览器,用于截取屏幕截图。...最常见的用例仍是使用 Jest UI automated tests。但是如果你认为可以在容器中用 Node.js 来操纵整个网页,则用例仅受到你想象力的限制。

2.8K10

Puppeteer 初探

Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制无头 Chrome或Chromium ,它也可以配置使用完整(非无头)Chrome或Chromium。...Puppeteer能做什么? 你可以在浏览器中手动完成的大部分事情都可以使用Puppteer完成 比如: 生成页面屏幕截图PDF。 抓取SPA并生成预先呈现的内容(即“SSR”)。...使用最新的的JavaScript浏览器功能,直接在最新版本的Chrome浏览器中运行测试。 捕获您网站的时间线跟踪,以帮助诊断性能问题。...入门 安装Puppeteer npm install puppeteer 或者 yarn add puppeteer Puppeteer至少需要Node v6.4.0,但如果想要使用async / await...默认的页面大小800x600分辨率,页面的大小可以通过Page.setViewport()来更改 实例二 创建一个PDF const puppeteer = require('puppeteer')

2.7K20

使用node+puppeteer+express搭建截图服务

使用node+puppeteer+express搭建截图服务 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14222807.html 写在之前 一开始我们的需求是打开报表的某个页面然后把图截出来...,然后调用企业微信发送给业务群 这中间我尝试了多种技术,比如html2image,pdf2image、selenium这些,这其中截图 比体验较好的也就selenium了,不过我们有些页面加载的时间较长...index.js 进程:pm2 list 删除:pm2 delete 应用ID 使用 由于以上代码已经对截图的加载做过处理的,所以无需在使用线程睡眠 同时代码也对宽度(width)高度(height...login=[是否登录true or false]&width=[页面宽度]&height=[页面高度]&url=[截图地址] 最后 虽然我们我们使用puppeteer能应对绝大多数报表,后来发现puppeteer...对多组件图表存在渲染问题,所以就要求 提供商提供导出图片功能(用户页面导出非api),所以最终一套就是 http模拟登录+调用截图接口+图片生成监控+推送图片 好了,关于截图就分享到这里了,各位元旦节快乐哈

1.4K20

小程序测试方案初探

从微信小程序发布这段时间,陆陆续续开发了不少小程序相关的项目,总结了一些通用性的组件,但是对于小程序如何做测试,依然是一头雾水,直到做了不少的项目,积累的一些经验开源库之后才理清如何做测试,下面将会介绍如何对小程序做...puppeteer Chrome 团队出品的一款更友好的Headless Chrome Node API,用于代替用户在页面上面点击、拖拽、输入等多种操作,常见的使用场景还是应用到UI自动化测试,...puppeteer可以对页面进行截图保存为图片或者PDF,解决爬虫无法实现的一些操作(异步加载页面内容) 。...('puppeteer'); (async () => { //这里官方不一样的就是,需要手动指定chromium目录所在的地址(上面链接下载之后解压),headlesstrue则不会打开chromium...:打开chrome->新建选项卡->输入url并回车->页面截图->保存,也可以看出puppeteer是站在使用者的角度去设计API。

8.4K30
领券