Jacleklm's Blog

hope statistics puppeteer 工具小结

2020/11/03

Puppeteer

Puppeteer 是 Google Chrome 团队官方的无界面(Headless)Chrome 工具。Chrome 作为浏览器市场的领头羊,Chrome Headless 将成为 web 应用 自动化测试 的行业标杆

Headless浏览器是指没有窗口的浏览器

用处

通过 Puppeteer 我们可以让浏览器帮我们自动完成很多事情, 例如 :

  • 生成页面的截图或者PDF
  • 自动表单提交 (模拟登陆等),UI测试,键盘输入
  • 创建自动化测试环境

具体API见官方文档

hope statistics puppeteer

一个基于 puppeteer 和 node 编写的小工具,用于统计工作室成员当月的日志、笔记、小结数目,代码见仓库

交互

考虑到需要的输入并不复杂,交互方面直接用了 readline 模块。涉及到更多输入的可用prompt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const app = require('./app')
const readline = require('readline');

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

rl.question('请输入当前的年份和月份,然后按回车键结束。eg: 202010 ', (month) => {

rl.question('请输入本月小结会的月份和日期,然后按回车键结束。eg: 1130 ', (date) => {
console.log('数据统计中, 请勿触碰键盘...');
app(Number(month), Number(date));
})
});

计算当月任务量

由于每月要求的日志、学习笔记数量都是不定的,这里调用了一个 免费API ,用于获取当月的法定节假日情况,再封装成一个 getTask 方法完成这部分计算

日志、笔记、小结数爬取

这里用了 puppeteer 提供的爬虫的功能,直接进行页面爬取并计算,具体见代码

参考资料
了解Puppeteer[https://juejin.im/post/6844903564880379912]

CATALOG
  1. 1. Puppeteer
    1. 1.1. 用处
  2. 2. hope statistics puppeteer
    1. 2.1. 交互
    2. 2.2. 计算当月任务量
    3. 2.3. 日志、笔记、小结数爬取