如何利用Python实现自动打卡签到的实践
作者:钟子敬07 发布时间:2021-06-07 06:03:38
需求描述
我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能。
业务梳理
通过长时间的早起打卡签到发现规律,我每天只是不停的点击,签到,都是规律性的操作,何尝不写一个程序加到Windows实现自动签到呢,这样我就不用每天都花时间上在打卡这件小事上。说干就干,我发现我每天的打卡行为可以归纳为"登录系统--》输入用户名、密码--》点击点击--》退出系统"。
一天上网浏览社区,突然看到selenium的描述,然后查阅相关资料发现,
selenium这东西相当好用。一句话概括就是selenium会帮我们自动输入用户名密码点击什么的,刚好和我的需求不谋而合。
至于这selenium这东西怎么安装,我就不重复造轮子了。我安装的webdriver是火狐,因为这考勤系统很奇葩,只允许火狐登录。至于程序的思路,我是这样设计的,把用户名密码放在json文件中,然后Python去读取,selenium帮我实现登录,签到,退出系统等,签到完成之后还会给我发一封邮件。所以,从这篇文章你还可以学习到Python如何读取json文件,Python如何利用邮箱发邮件等知识,真是一举多得。
程序实现
需要导入的包,from selenium import webdriver表示从selenium导入webdriver
随机停留时间,表示随机延时6秒到10秒之间的时间
打开登录的考勤系统,webdriver.Firefox()表示打开一个火狐窗口
清空用户名框和密码框,同时从设置好的json获取用户名密码,登录,clear方法是清除当前窗口已有的输入数据
然后需要通过find_element_by_css_selector、find_element_by_xpath、find_element_by_id等方法去点击相对应的按钮,一般的情况下通过css或者id或者name一般都能找的到按钮的值,如果实在不行,可以通过火狐上的拓展程序找到按钮的xpath,如果其它的属性都不好确定,就用find_element_by_xpath,这个基本上是万能的。
设定需要签到的人员的账户密码信息,一开始是我直接指定在字符串数组中,后来为了该软件可以广泛使用,加入json配置文件
从json的配置文件中获得用户信息、密码,这里可以看到Python是怎么读取json文件的
userinfo.json用户名密码信息如下图,保存在当前目录下就可以
发送邮件通知
main方法执行调度
执行的时候可以手工执行,python qiandao-4-0.py
也可以加入到Windows的定时任务当中
程序或脚本填,指定下Python的安装路径
D:\WinPython-64bit-3.4.4.4Qt5\python-3.4.4.amd64\python.exe
添加参数,表示签到脚本所在的路径
E:\1.4-Python源码资料\自动签到脚本-python-(4.0版本)-2\qiandao-4-0.py
起始于,是表示定时任务启动的时候是在哪一个目录下进行操作的,因为我的json配置文件也在E:\1.4-Python源码资料\自动签到脚本-python-(4.0版本)-2,因此我也填
E:\1.4-Python源码资料\自动签到脚本-python-(4.0版本)-2
来源:https://www.cnblogs.com/zhongfengshan/p/9520813.html


猜你喜欢
- Vuejs 本身就是一个 MVVM 的框架。但是在监听 window 上的 事件 时,往往会显得 力不从心。比如 这次是 window.re
- 字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的每个单元叫做 bucket。每个 bucket 有两部分:一个是
- 在keras中,数据是以张量的形式表示的,不考虑动态特性,仅考虑shape的时候,可以把张量用类似矩阵的方式来理解。例如[[1],[2],[
- 现在我们常见到有些网站常有这样个功能:有个按钮(如工作职位或省份或地区的选择等等)你一点就跳出一个图层(对话框)让你选择之类的。关闭它就点右
- 在新版的MVC6中,微软提供了强大的TagHelper功能,以便让我们摆脱如下的臃肿代码:@Html.LabelFor(model =>
- 引言之前松哥写过一个 MySQL 系列,但是当时是基于 MySQL5.7 的,最近有空在看 MySQL8 的文档,发现和 MySQL5.7
- PHP 异常处理异常用于在指定的错误发生时改变脚本的正常流程。异常是什么异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情
- PyQt5布局控件QGridLayout简介QGridLayout(网格布局)是将窗口分割成行和列的网格来进行排列,通常可以使用函数addW
- Like中文解释为喜欢的意思,但当应用于MySQL数据库中,Like则是一种语句,用于模糊查询,主要是针对字符型字段的,在一个字符型字段列中
- 什么是pyecharts?pyecharts 是一个用于生成 Echarts 图表的类库。echarts是百度开源的一个数据可视化 JS 库
- 这篇文章主要介绍了如何在mac环境中用python处理protobuf,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- 求英文字母、数字、下划线、汉字的js正则表达式英文字母或数字或下划线,英文字母数字下划线是:/^\w+$/汉字的是:/^[\u0391-\u
- 上文我们总结过了Python多继承的相关知识,没看过的小伙伴们也可以去看看,今天给大家介绍Python类的单继承相关知识。一、类的继承面向对
- 本文python代码实现的是最小二乘法线性拟合,并且包含自己造的轮子与别人造的轮子的结果比较。问题:对直线附近的带有噪声的数据进行线性拟合,
- 一、三种数据文件的读取二、csv、tsv、txt 文件读取1)CSV文件读取:语法格式:pandas.read_csv(文件路径)CSV文件
- 开机运行:随系统启动的应用程序,当系统启动之后会自动加载的应用在注册表中添加启动项便可实现开机启动。代码如下:# -*- coding:ut
- 在PHP中有两套正则表达式函数库。一套是由PCRE(Perl Compatible Regular Expression)库提供的。PCRE
- 1、表中字段区分大小写的设置在使用gorm查询的时候,会出现账户名A和a是一样的情况,是因为mysql默认不区分大小写造成的1.问题产生的原
- 一、下载1、官网下载2、某度网盘下载链接: https://pan.baidu.com/s/1BgbZH-aFaJ1nwm2PpDeOSQ?
- 在事务性语句执行过程中,服务器将会进行额外的处理,在服务器执行时多个事务是并行执行的,为了把他们的记录在一起,需要引入事务缓存的概念。在事务