官方文档:Puppeteer

今天大概介绍一下我项目用到的puppeteer操作:

// 启动浏览器
const browser = await puppeteer.launch({executablePath: 'xxxx', // 这里可以替换Chromium or Chrome的可执行文件,代替安装puppeteer附带的chrome
    args: ['--disabled-gpu', // 正常服务器连显卡都没有'--no-sandbox', // 非沙箱模式
    ]
})// 打开页面
const page = await browser.newPage();
await page.goto('file://xxxx/index.html');// 设置页面viewport大小为5页A4的大小
const unitPX = 37.7813, pageSize = 5;
await page.setViewport({ width: Math.ceil(unitPX * 21), height: Math.ceil(unitPX * 29.7 * pageSize) })// 截图,获得的res是pdf的二进制数据
// koa的话,这样输出:
// ctx.set('Content-Disposition', 'attachment; filename="index.pdf"');
// ctx.body = res
// preferCSSPageSize:true 按照css来渲染大小,不自动缩放
const res = await page.pdf({ preferCSSPageSize: true });// 到浏览器的上下文去执行一些脚本,并且获取最终返回的结果
const textList = page.evaluate(selector => {let domList = document.querySelectorAll(selector);return [...domList].map(txt => txt.innerText)
}, '#wrapper .text')

上面的操作其实已经可以完成相当一部分任务了!其他api看官方文档查询

转载于:https://www.cnblogs.com/amiezhang/p/11343062.html

puppteer的使用相关推荐

  1. 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试

    文:华为云DevCloud 乐少 1.背景 1.1 前端自动化测试较少 前端浏览器众多导致页面兼容性问题比较多,另外界面变化比较快,一个月内可能页面改版两三次,这样导致对前端自动化测试较少,大家也不是 ...

  2. python 查找文件内容性能 grep_使用grep查找文件中指定字符出现的次数

    关于IOS浏览器:document,body的click事件触发规则 今天做了个手机页面,点击某个按钮->弹出菜单,再点击菜单以外的任意位置->关闭菜单,在其他浏览器里面没有问题,但是在I ...

  3. 动态追踪技术思想及应用

    动态追踪技术思想及应用 简介 静态追踪: log.metric.stats; 一个简单的示例:调试test 函数中是否存在参数为0 的场景: testDtrace.c: void test(int i ...

  4. 终于搞掂博文自动发送

    Puppteer,Playwright还有老牌Selenium都是我们的好伴侣,一个也不能少,生活轻松全靠他们.Selenium IDE和Playwright IDE都是利器,助我上青云.一朝功成万骨 ...

  5. 【Web技术】961- 3分钟搞定海报合成

    背景 在推广业务中,常常会遇到合成带二维码海报分享功能,并且为了推广力度,需要同时在APP.WEB.小程序都有此功能加大曝光,各端都需要单独编写,复用能力差,效率低.本身合成海报业务并无难度,在此背景 ...

  6. Node.js在携程的落地和最佳实践

    在携程 Node.js 应用根据用户群,主要分两个方向: DA(数据聚合服务)和 SSR(服务端渲染)是服务于外部用户的,目标是提升用户体验.当然,DA 和 SSR 同时也提升了开发效率,例如前端开发 ...

  7. Puppeteer万物皆可爬

    puppeteer 是一个Chrome官方出品的headless Chrome node库.它提供了一系列的API, 可以在无UI的情况下调用Chrome的功能, 适用于爬虫.自动化处理等各种场景 p ...

  8. Selenium自动化绕过Cloudflare检测的方法

    运营多账号的"老手"们,应该对Selenium工具并不陌生,它可以直接在浏览器中运行,模拟真实的用户操作环境. 但是Selenium也有难以绕过检测.无法使用的平台--Cloudf ...

  9. Puppeteer将动态html页面生成pdf(终极解决方案)

    开通掘金好几年一直没有写文章,近一年经常有朋友问我将动态的h5/vue/react/原生js 页面转成pdf,我觉得有必要写个文章,给大家提供一套经过多个项目验证的完整解决方案的思路:觉得有用可以点赞 ...

最新文章

  1. C# 配置文件读取与修改
  2. SAP FI系列培训视频教程
  3. 【Matlab】一个超简单的生成顺序数组的方法
  4. 玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制
  5. Product change时关于change_log的讨论
  6. “自带大屏”的便利店,你见过吗?
  7. 《Windows服务器配置与管理》远程桌面管理
  8. datareader对象转化为int_【Angew. Chem. Int. Ed.】光催化丙二烯的去消旋反应
  9. 基于Seajs的可控台球碰撞游戏
  10. 【ArcGIS|空间分析】在范围内平均生成点 | 面要素内均匀且规定个数来均匀生成点
  11. java sql小区物业管理系统_小区物业管理系统javasql.doc
  12. 苹果电脑如何设置自定义模糊拼音操作?
  13. 手机端开发(uni-app、vant、mui)优缺点分析
  14. Virustotal使用
  15. es6 扩展运算符 三个点(...)
  16. 国美易卡网络大数据,国美易卡MySQL数据库
  17. linux 下 gcc编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用
  18. Microsoft系统端口及服务对应汇总
  19. 1046错误mysql_数据库实例:如何解决mysql 1046错误
  20. 用myeclipse打包项目时,Security alert:integrity check error。

热门文章

  1. 利用计算机浏览信息,利用计算机浏览信息时,可以实现任意页面之间的跳转,这种技术最恰当的说法是(??)...
  2. 分苹果 (民间比赛)
  3. Angular2+/Angular7 + Swiper
  4. 小红书用户画像分析_用户研究:如何做用户画像分析
  5. Ubuntu 16.04 - GeForce RTX 2080 Ti 安装 GPU 显卡驱动 (Display Driver)
  6. Jupyter结合pyechart安装的跳坑小指南(结合自己遇到的问题给大家节省些许时间)
  7. 基于单片机智能加湿器 水位防干烧加湿器的设计与实现
  8. java.net.urlencoder_使用java.net.URLEncoder.encode()可以对要传递的中文进行编码
  9. bash study
  10. 条款 03:尽可能使用const