Puppeteer 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Puppeteer 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Puppeteer 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !

软件简介

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。

在浏览器中手动完成的大多数事情都可以通过使用 Puppeteer 完成,下面是一些入门的例子:

  • 生成屏幕截图和 PDF 页面

  • 检索 SPA 并生成预渲染内容(即“SSR”)

  • 从网站上爬取内容

  • 自动提交表单,UI测试,键盘输入等

  • 创建一个最新的自动测试环境。使用最新的 JavaScript 和浏览器功能,在最新版本的 Chrome 中直接运行测试

  • 捕获网站的时间线跟踪,以帮助诊断性能问题

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (2)

加载中
mark
2020/10/19 10:46
回复
举报
很好
2017/09/10 13:20
回复
举报
更多评论
发表于开源治理专区
2020/10/18 23:15

AWS 新产品因复制开源代码却没公开提及原作者被批评

AWS 近日发布的一款新产品由于使用了开源项目的代码却没有公开提及原作者遭到了批评。 新推出的产品名为 CloudWatch Synthetics Recorder,这是用于记录浏览器交互的 Chrome 扩展程序,AWS 从开发者 Tim Nolet 创建的 Headless Recorder 开源项目中复制了代码。 AWS 的做法当然没有违反法律,毕竟 Headless Recorder 使用的 Apache-2.0 License 属于宽松许可证,允许被复制或 fork。不过 AWS 的行为还是受到了批评,因为它没有公...

18
5
发表于开发技能专区
2019/10/27 07:53

Puppeteer 2.0 发布,headless Chrome Node 库

Puppeteer 是一个 Chrome 官方出品的 headless Chrome node 库。它提供了一系列的 API, 可以在无 UI 的情况下调用 Chrome 的功能, 适用于爬虫、自动化处理等各种场景。2.0 已经发布,内容有: Big changes Chromium 79.0.3942.0 现在支持 Node.js v8+,Node.js v6 不再受支持 新的 API: page.emulateTimezone(timezoneId) page.emulateMediaType(type) page.emulateMediaFeatures(features) API changes 新 API:page.emulateT...

1
15
发表于开发技能专区
2018/11/05 07:22

Puppeteer 1.10.0 发布,Headless Chrome Node API

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 Puppeteer 1.10.0 已发布,主要包括: Chromium 72.0.3582.0 (r599821) 支持 Accessibility testing 新增 API browser.waitForTarget (6ac66c3) browserContext.waitForTarget (6ac66c3) page.accessibility (9ba3261) 该版本还...

2
6
发表于服务端专区
2018/03/01 07:20

Puppeteer 1.1.1 发布,Headless Chrome Node API

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 Puppeteer 1.1.1 已发布,更新如下: Bug Fixes #2046 - Using the dumpio setting throws an error in v1.1.0 Raw notes 42b0082 - chore: mark version v1.1.1 7a1e09b - fix(Launcher): fix dumpio bug (#2071) 源码下载: ...

0
5
发表了资讯
2017/11/13 07:24

Puppeteer 0.13 发布,Headless Chrome Node API

Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 Puppeteer 0.13 已发布,重要改变如下: Chromium 64.0.3264.0 (r515411) browser.pages 可用于访问 Chromium 中的所有页面,包括由 window.open 创建的页面。 (32398d1) browser.close 可用于关闭 Chromium (2b79514) 更多 AP...

3
7
发表了资讯
2017/08/28 07:41

Puppeteer 0.10.1 发布,Headless Chrome Node API

Puppeteer 0.10.1 已发布,Puppeteer 是一个控制 headless Chrome 的 Node.js API 。它是一个 Node.js 库,通过 DevTools 协议提供了一个高级的 API 来控制 headless Chrome。它还可以配置为使用完整的(非 headless)Chrome。 Bug 修复: #538 - This package is not compatible with nodejs 6.x, unlike the engines in package.json claims Raw notes: cd81944 - Test node6 on travis (#551) bd5b4fe - Phantom shim mentio...

1
7
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2020/04/12 19:35

【nodejs 爬虫】使用 puppeteer 爬取链家房价信息

使用 puppeteer 爬取链家房价信息 目录 使用 puppeteer 爬取链家房价信息 页面结构 爬虫库 pupeteer 库 实现 打开待爬页面 遍历区级页面 方法一 方法二 遍历街道页面 遍历分页 业务信息 成果保存 代码优化 成果展示 此文记录了使用 puppeteer 库进行动态网站爬取的过程。 页面结构 地址 链家的历史成交记录页面在这里,它是后台渲染模式,无法通过监听和模拟 xhr 请求来快速获取,只能想办法分析它的页面结构,进行元素提取。 ...

0
0
发表了博客
2018/07/14 16:22

Node.js-Webstorm2018配置nodejs

网上都是webstorm老版本的设置方法!根本就找不到以下配置项: 下面介绍2018版的配置方式。功能:使webstrom支持node.js语法检测及语法提示! 例如:配置前,没有任何提示 配置后 配置方法: 打开file->setting,并在搜索框输入node。在右边设置区域确认node.exe是否定位正确,并勾选Coding assistance for Node.js,最后点确认“ok”即可...

0
0
发表了博客
2018/03/15 13:47

nodejs

21、nodejs异步读写文件 https://blog.csdn.net/songmaolin_csdn/article/details/52910771 20、nodejs垃圾回收 node --max_semi_space_size=1 --max_old_space_size=10 1.js --production max_semi_space_size 32 16 max_old_space_size 1.4G 0.7g node --v8-options | grep max dong@ubuntu:~$ node --v8-options | grep max --gvn_iterations (maximum number of GVN fix-point iterations) --max_inlining_levels (maximum ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于开发技能专区
2020/07/25 18:25

js里面有这样的写法吗$$eval()

用puppeteer学写爬虫,里面有这么一段代码 const page = await browser . newPage (); await page . goto ( 'https://baidu.com' ); // await page.screenshot({ path: 'baidu_shot.png' }); await page . waitFor ( '.result-row' ); const results = await page . $$eval ( '.result-row' , rows => { return rows . map ( row => { const properties ={}; const titleElement = row . querySelector ( '.result-title' ); p...

4
0
2019/02/20 20:58

大家好,我是nodejs小白,想请教一个问题

我使用nodejs+puppeteer下载pdf,需要有一个页面显示一些提示信息,所有我想在index页面显示一些提示信息,但是像下面写的代码运行时,就会报错Cannot set headers after they are sent to the client,我查了一下,原因是说浏览器已经响应过了。但是我不知道如何解决,谁懂的能否帮小弟解答一下!万分感谢! router.get('/', function (req, res, next) { res.render('index', { title: 'title' }); //...一些逻辑 ...

2
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2 评论
103 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部