首页 > php > 公司考勤系统php爬虫应用

公司考勤系统php爬虫应用

由于公司换了新的人事,对打卡要求非常严格,一次没打扣半天工资,真是无fauck说,而公司旧的打卡机所带的考勤系统已经是十年前的玩意,查一次打卡记录少则10分钟,看着密密麻麻毫无规律的数字 实在是无法直视,于是我手下项目组的成员已经动手用go写了一个爬虫应用,我觉得我也需要动起手来亲手做一个用户体验更优秀的应用

先看成果

公司考勤系统php爬虫应用 - 第1张  | 博客一个

是不是顺眼多了。

业务流程

由于该考勤系统权限与部署都在总部,所以我只能以普通用户的身份来开发,既没有文档也没有接口,更没有数据库权限,所以该程序员发挥本事的时候到了。

原业务流程:用户输入账号密码点击登陆后,会到个人中心,然后再点考勤业务,然后输入开始日期,截止日期 按查找,然后翻页,显示所有记录 然后一行一行查找某天某个时段未打卡等

改造后业务流程:用户输入工号及选择月份,点查询直接显示何时未打卡并警告色标注

开发流程与技术栈

1.用户输入工号后,用工号查询uid

2.带着cookie与uid 模拟登录考勤系统

3.用正则匹配页面中用户名字和考勤周期

4.用考勤周期去和uid去查询考勤记录

5.用正则匹配查询结果存入数组

6.因考勤记录会有重复,过滤重复数据,并按日期归类,存入数组

7. 再次过滤数组,按日期给未打卡时段做标记,

8.封装成api接口

用到的技术点

模拟登录部分,cookie的保存和读取,浏览器User-Agent伪造等

解析数据:正则表达式对字符串 html标签的匹配

脏数据清洗:字符串分割,数组去重,数组合并

数据归档:date函数 strtotime函数 日期比较,数组递归等

前端渲染:响应式页面,vue,axios this作用域处理

消息推送:与企业微信互通定时发送打卡提醒(计划开发)

代码

整理中