puppeteer做页面监控
为了监测web服务器有无异常,用puppeteer无头浏览器对几个页面做截图爬取然后通过企业微信系统消息发送到群里查看。
首先安装puppeteer,我大天朝用户需要设置国内源
npm config set puppeteer_download_host https://npm.taobao.org/mirrors
设置为淘宝镜像,然后安装。
启动一个无头浏览器
const browser = await puppeteer.launch({headless: true,args: ["--no-sandbox", "--disable-setuid-sandbox"],});
然后创建一个page,设置模拟器
const page = await browser.newPage();
await page.emulate(puppeteer.devices["iPhone 6"]);
如果有需要从cookie中获取的数据,手动设置一下
const cookie1 = {url: "url",path: "/",domain: "domain",name: "key1",value: "value1",};const cookie2 = {url: "url",path: "/",domain: "domain",name: "key2",value: "value2",};await page.setCookie(cookie1, cookie2);
如果有ua校验,设置ua
await page.setUserAgent("Mozilla/5.0 (Linux; Android 10; OXF-AN10 Build/HUAWEIOXF-AN10; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2469 MMWEBSDK/200502 Mobile Safari/537.36 MMWEBID/939 MicroMessenger/7.0.15.1680(0x27000F3F) Process/appbrand0 WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64 miniProgram");
然后就跳转到页面
await page.goto(url, {waitUntil: "networkidle0",}).catch(e =>console.log('e==>'+e));
接下来就是截屏幕图片
await page.screenshot({ path: picname });
发企业微信的就省略了
然后就是关闭对应的链接
await page.close();await browser.close();
这样基本上是可以完成任务了
但有两个页面初始化的时候调的接口比较多,截图出现好几次loading的情况,需要等待dom完全加载好之后再截图
在page.goto 之前加了
await page.setDefaultNavigationTimeout(0);
设置超时时间为0,但还是不管用
在page.goto之后设置
await page.waitForSelector(dom);
dom就是在html文档上对应元素的id
又运行了一周多,没有再出现截有loading的图片了。
puppeteer做页面监控相关推荐
- Spark远程调试+页面监控--用最熟悉的方式开发Spark应用
大家好. 我是楼兰,持续分享最纯粹的技术内容. 大数据技术已经大行其道,但是很多人对大数据组件依然会觉得很陌生,很不顺手.对大部分人来说,环境部署.API使用其实问题都不大,技术人员最不欠缺的 ...
- php jq跳转页面跳转,使用jQuery做页面跳转
这次给大家带来使用jQuery做页面跳转,使用jQuery做页面跳转的注意事项有哪些,下面就是实战案例,一起来看一下. 所以了,今天我们就来说一说如何在jQuery中跳转到另外一个网页HTML. 其实 ...
- [html] 如何根据设备尺寸做页面自适应?
[html] 如何根据设备尺寸做页面自适应? @Mediaquery 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题
- 使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转
2019独角兽企业重金招聘Python工程师标准>>> 使用Ext JS,不要使用页面做组件重用,尽量不要做页面跳转 今天,有人请教我处理办法,问题是: 一个Grid,选择某条记录后 ...
- 使用Nginx+Memcache做页面缓存
前言 官方商城改版之后,为了提升动态页面的访问速度,对商城的一些页面进行了缓存,使其在一定时间之内避免了重复的查询和编译. 原理 主要使用了 nginx 的 memcached_module 模块,直 ...
- 用$.getJSON() 和$.post()获取第三方数据做页面 ——惠品折页面(1)
用$.getJSON() 和$.post()获取第三方数据做页面 首页 index.html 页面 需要jquery 和 template-web js文件 可以直接在官网下载 中间导航条的固 ...
- 使用树莓派摄像头做一个监控小车
最近在网络上看到一句话,让我感触颇深: "你看那些,牵着手说着笑,通往厕所的身影,看那一堆人抱怨着,畅想着.看几个人大笑着吃着泡面的场景,你看,那是我们回不去的青春." 游戏手柄, ...
- 腾讯专家分享:腾讯做业务监控的心得和经验
转载地址:http://www.qcloud.com/blog/?p=497 分享主题: 腾讯业务立体化监控体系 1.介绍腾讯业务监控体系的层级构成: 2.用代表性的监控系统阐述每个监控层次的实现方法 ...
- kafka maven 依赖_SpringBoot入门建站全系列(二十八)整合Kafka做日志监控
SpringBoot入门建站全系列(二十八)整合Kafka做日志监控 一.概述 Apache Kafka是一个分布式发布 - 订阅消息系统和一个强大的队列,可以处理大量的数据,并使您能够将消息从一个端 ...
最新文章
- cloudera hbase集群简单思路
- thinkphp文件上传在$_files里面看不到
- Effective C++ 读书笔记之Part2.Constructors, Destructors, and Assignment Operators
- PHP中的多行字符串传递给JavaScript方法两则
- Spring Boot下的lombok安装以及使用简介
- C++11遍历map
- android 面试总结,后续注意学习
- XAMPP 7.3.3 安装
- linux重启memcache_linux下启动和停止memcached
- delphi 中assert
- Sublime Text 收藏笔记
- Java自学方法和路线,我万字推荐你这样学
- Bat清理Chrome谷歌浏览器所有缓存
- 厉害!他33岁破格晋升教授和博导,成果还打破国外技术垄断
- 那些人,那些事儿之小武
- Android生态系统进化论
- FreeRTOS -- 简介
- python条件判断练习—(猜拳游戏)
- Java 连接数据库的几种方法
- 格灵深瞳出手,灵异视频告破