puppteer的使用
官方文档: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的使用相关推荐
- 【华为云实战开发】14.如何使用Node爬虫利器Puppteer进行自动化测试
文:华为云DevCloud 乐少 1.背景 1.1 前端自动化测试较少 前端浏览器众多导致页面兼容性问题比较多,另外界面变化比较快,一个月内可能页面改版两三次,这样导致对前端自动化测试较少,大家也不是 ...
- python 查找文件内容性能 grep_使用grep查找文件中指定字符出现的次数
关于IOS浏览器:document,body的click事件触发规则 今天做了个手机页面,点击某个按钮->弹出菜单,再点击菜单以外的任意位置->关闭菜单,在其他浏览器里面没有问题,但是在I ...
- 动态追踪技术思想及应用
动态追踪技术思想及应用 简介 静态追踪: log.metric.stats; 一个简单的示例:调试test 函数中是否存在参数为0 的场景: testDtrace.c: void test(int i ...
- 终于搞掂博文自动发送
Puppteer,Playwright还有老牌Selenium都是我们的好伴侣,一个也不能少,生活轻松全靠他们.Selenium IDE和Playwright IDE都是利器,助我上青云.一朝功成万骨 ...
- 【Web技术】961- 3分钟搞定海报合成
背景 在推广业务中,常常会遇到合成带二维码海报分享功能,并且为了推广力度,需要同时在APP.WEB.小程序都有此功能加大曝光,各端都需要单独编写,复用能力差,效率低.本身合成海报业务并无难度,在此背景 ...
- Node.js在携程的落地和最佳实践
在携程 Node.js 应用根据用户群,主要分两个方向: DA(数据聚合服务)和 SSR(服务端渲染)是服务于外部用户的,目标是提升用户体验.当然,DA 和 SSR 同时也提升了开发效率,例如前端开发 ...
- Puppeteer万物皆可爬
puppeteer 是一个Chrome官方出品的headless Chrome node库.它提供了一系列的API, 可以在无UI的情况下调用Chrome的功能, 适用于爬虫.自动化处理等各种场景 p ...
- Selenium自动化绕过Cloudflare检测的方法
运营多账号的"老手"们,应该对Selenium工具并不陌生,它可以直接在浏览器中运行,模拟真实的用户操作环境. 但是Selenium也有难以绕过检测.无法使用的平台--Cloudf ...
- Puppeteer将动态html页面生成pdf(终极解决方案)
开通掘金好几年一直没有写文章,近一年经常有朋友问我将动态的h5/vue/react/原生js 页面转成pdf,我觉得有必要写个文章,给大家提供一套经过多个项目验证的完整解决方案的思路:觉得有用可以点赞 ...
最新文章
- C# 配置文件读取与修改
- SAP FI系列培训视频教程
- 【Matlab】一个超简单的生成顺序数组的方法
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之三 - 事件机制
- Product change时关于change_log的讨论
- “自带大屏”的便利店,你见过吗?
- 《Windows服务器配置与管理》远程桌面管理
- datareader对象转化为int_【Angew. Chem. Int. Ed.】光催化丙二烯的去消旋反应
- 基于Seajs的可控台球碰撞游戏
- 【ArcGIS|空间分析】在范围内平均生成点 | 面要素内均匀且规定个数来均匀生成点
- java sql小区物业管理系统_小区物业管理系统javasql.doc
- 苹果电脑如何设置自定义模糊拼音操作?
- 手机端开发(uni-app、vant、mui)优缺点分析
- Virustotal使用
- es6 扩展运算符 三个点(...)
- 国美易卡网络大数据,国美易卡MySQL数据库
- linux 下 gcc编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用
- Microsoft系统端口及服务对应汇总
- 1046错误mysql_数据库实例:如何解决mysql 1046错误
- 用myeclipse打包项目时,Security alert:integrity check error。
热门文章
- 利用计算机浏览信息,利用计算机浏览信息时,可以实现任意页面之间的跳转,这种技术最恰当的说法是(??)...
- 分苹果 (民间比赛)
- Angular2+/Angular7 + Swiper
- 小红书用户画像分析_用户研究:如何做用户画像分析
- Ubuntu 16.04 - GeForce RTX 2080 Ti 安装 GPU 显卡驱动 (Display Driver)
- Jupyter结合pyechart安装的跳坑小指南(结合自己遇到的问题给大家节省些许时间)
- 基于单片机智能加湿器 水位防干烧加湿器的设计与实现
- java.net.urlencoder_使用java.net.URLEncoder.encode()可以对要传递的中文进行编码
- bash study
- 条款 03:尽可能使用const