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 相关文章推荐
python通过ssh-powershell监控windows的方法
Jun 02 Python
Python的time模块中的常用方法整理
Jun 18 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
Python 中的with关键字使用详解
Sep 11 Python
python实现协同过滤推荐算法完整代码示例
Dec 15 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
如何分离django中的媒体、静态文件和网页
Nov 12 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
flask框架自定义url转换器操作详解
Jan 25 Python
python生成任意频率正弦波方式
Feb 25 Python
详解Python 循环嵌套
Jul 09 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
帅气的琦玉老师
2020/03/02 日漫
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
微信自定义菜单的创建/查询/取消php示例代码
2016/08/05 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
jQuery实现每日秒杀商品倒计时功能
2019/09/06 jQuery
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
Python模拟登录12306的方法
2014/12/30 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
在双python下设置python3为默认的方法
2018/10/31 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
洗发水广告词
2014/03/13 职场文书
给公司的建议书范文
2014/05/13 职场文书
干部作风建设工作总结
2014/10/29 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
入学证明
2015/06/23 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server