几行python代码实现钉钉自动打卡,网友:终于告别缺勤了
前言
众所周知因为疫情的原因大家都没有办法上学和上班,“钉钉”这个app起到了重大的作用。学校为了学生成绩开启“钉钉”之路。老师也成一个“合格”的主播,感谢XXX童鞋的礼物、666扣起来
老师为了营造一个好的学习环境,直播风格也是独具一格。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
钉钉到底有什么功能为大众所用呢?
为什么要写钉钉打卡?
其实我是个早起早睡的乖宝宝,所以我是用不上的,至于为什么要写这个脚本,其实是因为我在加班,工作干完了,还有10分钟可以下班,那就利用10分钟学(装)个(个)习(B)。废话就不说了, 快下班了。直接开干.
说下思路吧
用python调用adb命令通过x,y点位来操作手机,在写个定时器就好了,简单吧。10分钟够了……
准备环境
- Android 手机一部(我用的华为荣耀10)
- adb 工具包,下载安装包并配置环境变量
- python3环境
安装adb 配置环境变量
- 下载adb : 网上太多了,找一个就好了,我要和时间赛跑 (> _ <……)
- 配置环境变量: 这个是基础,python环境配置我都不打算在这里说的,adb配置好adb --version 检查下
设置手机
- 数据线连接电脑 ,手机打开开发者模式,输入 adb devices,出现下图就是连接上手机了
- 手机进行设置,在开发者模式里找到指针位置选项,并打开,是为了获取点位信息的
写脚本
在写之前需要了解adb常用命令
a,adb shell input keyevent 224 # 电源
b,adb shell input tap 647 1685 # 点击事件
c,adb shell input swipe 747 1413 747 323 # 滑动事件
d,adb shell am force-stop com.alibaba.android.rimet 关掉钉钉进程
导入需要用的包
import os
import time
手动操作一遍没记录每一步的x,y的点位,再用python写出来
def daka():
print(os.system('adb shell input keyevent 224')) # 打开电源键
time.sleep(3)
print(os.system('adb shell input tap 647 1685 ')) # 点击钉钉应用位置
time.sleep(3)
print(os.system('adb shell input tap 528 2190 ')) # 点击钉钉菜单
time.sleep(3)
print(os.system('adb shell input swipe 747 1413 747 323')) # 上滑找考勤打卡程序
time.sleep(3)
print(os.system('adb shell input tap 910 1011 ')) # 点击考勤打卡
time.sleep(3)
"""
这个就是要写打开的操作了,我不能打卡,我还要加班,省的人事小姐姐找我喝咖啡,很简单,这一步自己写吧,**我跳过**
"""
print(os.system('adb shell am force-stop com.alibaba.android.rimet')) # 操作打卡完成后关闭钉钉应用
pass
怎么查看包名
adb shell am monitor 然后在手机打开应用即可
截图真费时间,感觉时间快不够了,要不我一会录屏吧…………额 好像已经搞定了 …………
随便写个定时器吧,你们可以自己优化下定时器哦,我写的比较糙咯……
""" 定义个返回秒的函数"""
def sleeptime(hour, min, sec):
return hour * 3600 + min * 60 + sec
# 设置自动执行间隔时间,我这里设置时间,啊!现在是凌晨12点整了,早上9点上班那我就先让下次是8小时候执行吧
second = sleeptime(8, 0, 0)
# 来个暴力的死循环
while 1 == 1:
# 延时
time.sleep(second)
# 执行
daka()
来个代码总结
# -*- coding: utf-8 -*-
'''
@Created on 2019/12/20
@Author : Pa Lengderen
'''
# 引入time包
import os
import time
def daka():
print(os.system('adb shell input keyevent 224')) # 电源键
time.sleep(3)
print(os.system('adb shell input tap 647 1685 ')) # 点击钉钉应用
time.sleep(3)
print(os.system('adb shell input tap 528 2190 ')) # 点击菜单
time.sleep(3)
print(os.system('adb shell input swipe 747 1413 747 323')) # 上滑
time.sleep(3)
print(os.system('adb shell input tap 910 1011 ')) # 点击考勤打卡
time.sleep(3)
print(os.system('adb shell am force-stop com.alibaba.android.rimet'))
pass
# 函数定义
def sleeptime(hour, min, sec):
print(hour * 3600 + min * 60 + sec)
return hour * 3600 + min * 60 + sec
# 设置自动执行间隔时间,我这里设置的2s
second = sleeptime(0, 0, 10)
# 死循环
while 1 == 1:
# 延时
time.sleep(second)
# 执行
daka()
在上个手机录屏
手动录屏
呃呃呃(⊙﹏⊙) ,突然发现钉钉的个人信息太多了,我要食言了!!!尴尬
头像不能丢。为了学(装)习(B),我无所畏惧
几行python代码实现钉钉自动打卡,网友:终于告别缺勤了的更多相关文章
- 哪吒票房超复联4,100行python代码抓取豆瓣短评,看看网友怎么说
<哪吒之魔童降世>这部国产动画巅峰之作,上映快一个月时间,票房口碑双丰收. 迄今已有超一亿人次观看,票房达到42.39亿元,超过复联4,跻身中国票房纪录第三名,仅次于<战狼2> ...
- 200行Python代码实现2048
200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...
- 10 行 Python 代码实现模糊查询/智能提示
10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 40多行python代码开发一个区块链。
40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...
- 15行python代码,帮你理解令牌桶算法
本文转载自: http://www.tuicool.com/articles/aEBNRnU 在网络中传输数据时,为了防止网络拥塞,需限制流出网络的流量,使流量以比较均匀的速度向外发送,令牌桶算法 ...
- 30行Python代码实现人脸检测
参考OpenCV自带的例子,30行Python代码实现人脸检测,不得不说,Python这个语言的优势太明显了,几乎把所有复杂的细节都屏蔽了,虽然效率较差,不过在调用OpenCV的模块时,因为模块都是C ...
- 21行python代码实现拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...
- vim中凝视多行python代码
在vim中凝视多行python代码比較麻烦,主要由下面几种方法: (1)将须要凝视的代码以文档字符串的形式呈现 (2)将须要凝视的代码以函数的形式呈现 (3)使用vim自身快捷键 我们主要使用第三种方 ...
- 几行python代码解决相关词联想
日常生活中经常会遇到相关词联想的问题,也就是说输入一个词汇,把相关的词汇查询出来,听起来这个做法也不是太难,但如何去积累那么多的词汇,再用好的算法将相关内容联系起来,本身还是不简单的.笔者认为最简单的 ...
随机推荐
- keyring源码加密解密函数分析
Encrypt the page data contents. Page type can't be FIL_PAGE_ENCRYPTED, FIL_PAGE_COMPRESSED_AND_ENCRY ...
- IOS10 window.navigator.geolocation.getCurrentPosition 无法定位问题
在iOS 10中,苹果对webkit定位权限进行了修改,所有定位请求的页面必须是https协议的. 如果是非https网页,在http协议下通过HTML5原生定位接口会返回错误,也就是无法正常定位到用 ...
- Worktile完成新一轮融资,将发力研发管理赛道
Worktile 宣布完成B+轮融资.本轮融资由亿联凯泰基金领投,老股东斯道资本.宽带资本跟投.该轮融资将用于公司产品技术研发及市场拓展. 作为企业服务行业的佼佼者,Worktile 始终以打造世界级 ...
- bzoj3621我想那还真是令人高兴啊
bzoj3621我想那还真是令人高兴啊 题意: T组数据,每组给出两个三角形各点坐标,要求求出一个点使第一个三角形可以绕这个点放缩和旋转得到另一个三角形.T≤10,坐标为≤10000的实数,数据保证三 ...
- 集训作业 洛谷P1469 找筷子
这个题的代码真的是短的不得了呢. 有个神奇的东西叫异或,写起来是这个样子的^. 这个东西可以查看2个数的二进制某位是否相同,相同取0,不同取1.虽然我用的不熟,但我可以想出来,如果2个相同的数异或,答 ...
- vue使用select间相互绑定
让这两个select相互绑定,让roleOptions选取值后,worklist弹出得是roleOptions值 <el-select v-model="postForm.projec ...
- springboot(五)使用FastJson返回Json视图
FastJson简介: fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来做快速操作Json的序列化与反序列化的组件.它是目前json解析最快的开源组件没有之一!在这之前jaskJs ...
- java基础(七)--基本类型转换
一.转换规则 1.类型转换的原则是: 小容量可以自动转成大容量,大容量转成小容量,需要强制转换,有些类型之前不能转换 判断以下语句是否符合要求 2.默认的识别数字 整数默认->int 浮点数默认 ...
- 蜻蜓点水说说Redis的String的奥秘
本篇博客参考:掘金Redis小册 敖丙 如果面试官问你,单线程的Redis为什么那么快,你可能脱口而出,因为单线程,避免上下文切换:因为基于内存,比硬盘读写快很多:因为采用的是多路复用网络模型.不管你 ...
- html中input提示文字样式修改
在很多网站上我们都看到input输入框显示提示文字,让我们一起来看看如果在input输入框中显示提示文字.我们只需要在<input>标签里添加:placeholder="提示文字 ...