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 相关文章推荐
Pandas探索之高性能函数eval和query解析
Oct 28 Python
浅析Git版本控制器使用
Dec 10 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
python保存文件方法小结
Jul 27 Python
django-filter和普通查询的例子
Aug 12 Python
python多任务之协程的使用详解
Aug 26 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
浅谈Python中的模块
Jun 10 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
java字符串格式化输出实例讲解
Jan 06 Python
Python基于百度AI实现抓取表情包
Jun 27 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中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
jquery 常用操作方法
2010/01/28 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&”)
2016/12/23 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
Vue实现验证码功能
2019/12/03 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python读写docx文件的方法
2018/05/08 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
python进阶之多线程对同一个全局变量的处理方法
2018/11/09 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
python scatter函数用法实例详解
2020/02/11 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
Deux par Deux官方网站:设计师童装
2020/01/03 全球购物
2014年应届大学生自我评价
2014/01/09 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
预备党员党支部意见
2015/06/02 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书