Python实现钉钉/企业微信自动打卡的示例代码


Posted in Python onFebruary 02, 2021

每天急匆匆赶地铁上班的时候总会一不小心就会忘记打卡,尤其是软件打卡,那有没有什么办法可以解决忘打卡的问题呢?今天给大家推荐一下一款神器,利用Python实现定时自动打卡。

1 前期工具准备

  • 不用说的Python
  • 一部24小时可以放公司的安卓手机或电脑安装模拟器
  • ADB工具

2 ADB的安装配置

去下载ADB安装包,安装后在环境变量Path中添加目录

Python实现钉钉/企业微信自动打卡的示例代码

2.1 UIautomator2的安装

# 安装 uiautomator2(PC端)
pip3 install -U uiautomator2

3 手机连接电脑

3.1 手机

如果使用的是手机,需要手机开启“开发者选项”模式,然后USB调试打开,将USB插入电脑

命令行输入

adb devices

检测手机是否连接成功

下面这样就说明成功了

Python实现钉钉/企业微信自动打卡的示例代码

然后运行

python3 -m uiautomator2 init

将atx-agent安装到手机

3.2模拟器

如果使用模拟器,在模拟器的设置中将ADB连接打开,同样在命令行输入adb devices检测是否连接成功,是用模拟器的话定位位置需要更改为公司要求打卡范围内,后续步骤同上

4 webitor安装使用

为了抓取控件更方便安装weditor

pip install --pre weditor

命令行输入

python -m weditor

在弹开的浏览器中进行操作

Python实现钉钉/企业微信自动打卡的示例代码

输入框中填入第三步得到的设备序列号,然后点击Connect,正常的话会有个绿色的叶子,应用控件的信息就需要在这里拿到了

5 代码开发

import uiautomator2 as u2
import time
from apscheduler.schedulers.blocking import BlockingScheduler
 
d = u2.connect_usb('b11b0fbe')
def click_text(self,str,sq=0): #对于无法直接点击的控件写了个函数
   path=d(text=str)[sq]
   x,y=path.center()
   d.click(x,y)
def click(card_ty):
   d.app_start("com.alibaba.android.rimet") # 启动应用
   time.sleep(5)
   d(text="工作台").click()
   time.sleep(3)
   d(text="考勤打卡").click()
   time.sleep(3)
   d(scrollable=True).fling.toEnd()
   click_text(d,card_ty,-1)
   time.sleep(3)
   d.screenshot("11.jpg")
   d.push("11.jpg", "/sdcard/0/11.jpg")
   d.app_stop("com.alibaba.android.rimet")
   send_info()
def send_info(): #将打卡信息截图利用小号发送给自己大号
   d.app_start("com.tencent.mm") # 启动应用
   time.sleep(5)
   click_text(d,"通讯录")
   click_text(d,"打卡")
   click_text(d,"发消息")
   time.sleep(2)
   d(description="更多功能按钮,已折叠").click()
   time.sleep(2)
   d.swipe(1000, 1450, 100, 1450)
   time.sleep(2)
   click_text(d,"文件")
   time.sleep(2)
   click_text(d,"微信文件",-1)
   click_text(d,"手机存储")
   click_text(d,"0")
   d(resourceId="com.tencent.mm:id/cvh").click()
   d(text="发送(1/9)").click()
   d(text="给朋友留言").click()
   d.send_keys("今日打卡记录,请注意查收", clear=True)
   d(text="发送").click()
   time.sleep(5)
   d.app_stop("com.tencent.mm")
 
def job1():
   click("上班打卡")
def job2():
   click("下班打卡")    
if __name__ == "__main__":
   sched = BlockingScheduler() #设置定时任务,周一至周五 上午8.50自动打上班卡,下午6.10自动打下班卡
   sched.add_job(job1, 'cron', day_of_week='mon-fri', hour='8',minute ='50')
   sched.add_job(job2, 'cron', day_of_week='mon-fri', hour='18',minute ='10')
   sched.start()

其中打卡部分以及微信发送打卡截图部分的代码,需要大家自己根据自己实际的情况做步骤调整。另外不习惯使用apscheduler库的话用系统自带的任务计划程序也是可以的,部分步骤效果如下: 

Python实现钉钉/企业微信自动打卡的示例代码

企业微信打卡同理,大家可以自行研究,希望大家只是用于学习,不要挑战公司规章制度。

到此这篇关于Python实现钉钉/企业微信自动打卡的示例代码的文章就介绍到这了,更多相关Python 钉钉/企业微信自动打卡内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Saltstack快速入门简单汇总
Mar 01 Python
详解Python进程间通信之命名管道
Aug 28 Python
django项目搭建与Session使用详解
Oct 10 Python
pygame游戏之旅 载入小车图片、更新窗口
Nov 20 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
Python实现FM算法解析
Jun 18 Python
安装docker-compose的两种最简方法
Jul 30 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
Aug 06 Python
django 多数据库及分库实现方式
Apr 01 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
python使用pymysql模块操作MySQL
Jun 16 Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
Jun 29 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 #Python
python 模块导入问题汇总
Feb 01 #Python
用python制作个视频下载器
Feb 01 #Python
python基于pexpect库自动获取日志信息
Feb 01 #Python
Python入门基础之数字字符串与列表
Feb 01 #Python
Pyecharts 中Geo函数常用参数的用法说明
Feb 01 #Python
Python+MySQL随机试卷及答案生成程序的示例代码
Feb 01 #Python
You might like
做一个有下拉功能的留言版
2006/10/09 PHP
php中上传文件的的解决方案
2018/09/25 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[00:35]DOTA2上海特级锦标赛 MVP.Phx战队宣传片
2016/03/04 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
videocapture库制作python视频高速传输程序
2013/12/23 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
2014和解协议书范文
2014/09/15 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
民事答辩状范本
2015/05/21 职场文书
奥巴马开学演讲观后感
2015/06/12 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL