山东财经大学疫情打卡自动化

Lylelove

编程|2021-9-14|最后更新: 2022-11-3|
type
status
date
slug
summary
tags
category
icon
password
Property
Nov 3, 2022 02:18 AM

严正声明:

本项目旨在巩固笔者python基础,分析python项目。
本文不提供任何操作教程!
如有需要可自行参考github项目内的README.md文件,github项目地址:
本项目操作需一定github基础,为避免无基础者滥用造成影响,笔者不会进行详细教学,如有部署上的问题可以私信解答,但不会完全指导。

郑重声明:

本项目初衷为学习python基础!
本项目使用者在使用前应了解本项目所带来的风险!
本人不对此项目所造成的一切后果担责!

项目来源:

本项目基于@wangshouh的SDUFE项目,由笔者进行部分修改而来,本项目采用MIT许可证,对滥用本项目造成的后果,笔者与@wangshouh不负任何责任!

项目分析:

notion image
本项目首先在secrets中存储了使用者学号、密码、基础信息等信息,再获取了登录时的cookie后,对该cookie下的验证码进行下载、识别操作,最后将识别信息返回通过requests登录阶段,成功登录后根据之前的基础信息进行打卡操作并第二次识别验证码。
notion image
通过导入sys库,使py文件得以使用外界参数。配合github action的配置文件main.yml中的:
notion image
实现使用secrets中的数据作为py文件的参数运行,这是笔者认为本项目与原项目最大的进步,这一步可以让使用者的学号、密码、基础信息为隐藏状态,不会为外界获得,而原项目全部为公开,有信息泄露的风险。本项目完美解决了这一问题。
notion image
getcookie函数是@wangshouh所写,笔者对其没有任何改动,是一个很寻常的通过requests获取cookie的操作。
notion image
通过getImg函数下载验证码图片以便后面识别。该函数是笔者新加入的。
notion image
导入ddddocr第三方SDK对上一步下载的验证码图片进行识别。笔者对原项目中的该函数进行修改而来,原函数使用百度智慧云的文字识别功能识别验证码,经笔者实际操作发现,识别准确率较低并且免费限额有限,况且使用者还需要再注册百度智慧云,搭建成本较高,所以笔者引入第三方python依赖库ddddocr进行验证码识别,经实际检验,准确率在90%以上。
登录和打卡都是笔者在原项目基础上略微进行修改。代码附下:
notion image
notion image
再次声明:
本项目初衷为学习python基础!
本项目使用者在使用前应了解本项目所带来的风险!
本人不对此项目所造成的一切后果担责!