易班自动打卡+钉钉机器人消息提醒
(一)声明
本文仅供学习交流使用,如有发热、感冒、咳嗽请及时根据当地疫情防控办法及时上报
(二)需求
首先,我双手支持和配合学校相关疫情防控政策。
其次,每天重复劳动让我们软件专业情何以堪。说干就干,自己动手,丰衣足食~
(三)准备工作
①python的安装,下方链接下载python3.0以上版本Download Python | Python.orghttps://www.python.org/downloads/
② selenium 和requests库安装
打开命令行cmd,直接使用 pip 安装命令:
pip install selenium
pip install requests
③CHROMEDRIVER 下载安装
要下载与自己所安装 chrome 浏览器版本对应的 Chromedriver 版本,因此首先查看浏览器版本,可以直接进入设置→关于 Chrome,也可以在浏览器地址栏中输入:chrome://version 查看。我的 Chrome 版本号为:99.0.4844.51,因此下载最新的99.0.4844.51的版本就行。
Chromedriver 下载地址:
1、官方下载有时候可能进不去http://chromedriver.storage.googleapis.com/index.htmlhttps://chromedriver.storage.googleapis.com/index.html
2、国内淘宝镜像CNPM Binaries Mirrorhttps://npm.taobao.org/mirrors/chromedriver/
选择自己对应的系统版本
Chromedriver 安装:
Windows 下解压安装包得到 chromedriver.exe 文件,其实现在就已经可以使用了,不过每次使用时要告诉程序 chromedriver.exe 的具体路径;比如:(放在当前python文件的同一目录下)
但是为了以后使用方便,我们干脆一劳永逸,加入环境变量里:
把 chromedriver.exe 放到 chrome 的安装路径下(我的是C:\Users\17965\AppData\Local\Google\Chrome\Application)
并复制当前路径(C:自己的\Local\Google\Chrome\Application)添加到环境变量中,
在 cmd 命令窗口下输入 chromedriver 验证是否 ok
④钉钉机器人消息提醒设置(如果不需要可以省略)
创建一个钉钉群聊进入设置,配置一个机器人如下步骤:
设置完了以后要保存好webhook地址和图中第五部的密钥
(四)代码部分
没有钉钉消息提醒的版本
#导入依赖库
import time
from selenium import webdrivernam=['账号一','账号二']
password=['密码一','密码二']def work(names,passwords):try:# 打开浏览器,进入易班第三方登录browser = webdriver.Chrome()#获取登录网站这里以嘉职打卡网站为例browser.get('https://oauth.yiban.cn/code/html?client_id=661a2f7bfd12f200&redirect_uri=http://newca.jxvtc.edu.cn/oauth/login/oAuth&state=627c77785b8c2ec6980f2cd86cfd33cb')#输入账号browser.find_element_by_id("oauth_uname_w").send_keys(names)#输入密码browser.find_element_by_id("oauth_upwd_w").send_keys(passwords)time.sleep(3)#点击登录browser.find_element_by_class_name("oauth_check_login").click()#线程强制停5秒等网页加载time.sleep(5)# 点击否 获取要点击元素的相对路径browser.find_element_by_xpath("iv/div[2]/div/div/span[2]").click()time.sleep(2)#点击提交browser.find_element_by_xpath("html/bodyv[1]/div[1]").click()time.sleep(5)# 退出浏览器# browser.quit()print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Success!")except:print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Fild!")#循环遍历用户
for i in range(2):names=nam[i]passwords=password[i]work(names,passwords)
有钉钉消息提醒的版本
#导入依赖库
import time
from selenium import webdriver
import hmac
import hashlib
import base64
import urllib.parse
import requests
import jsonrename=['THE_K','牛马']
nam=['账号一','账号二']
password=['密码一','密码二']
#定义数据类型
timestamp = str(round(time.time() * 1000))
#这里填自己机器人密钥
secret = 'SECfc7fc2ea7f20c43709978118425685026aff18bf85683894b3feXXXXXXXXX'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote(base64.b64encode(hmac_code))#定义数据类型
headers={'Content-Type': 'application/json'}
#填自己的钉钉机器人webhook
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=c27a4919f932912b700000000000091ee2842200000000000093978ea122c35×tamp='+timestamp+"&sign="+sign
def work(names,passwords,renames):try:# 打开浏览器,进入易班第三方登录browser = webdriver.Chrome()#获取登录网站这里以嘉职打卡网站为例browser.get('https://oauth.yiban.cn/code/html?client_id=661a2f7bfd12f200&redirect_uri=http://newca.jxvtc.edu.cn/oauth/login/oAuth&state=627c77785b8c2ec6980f2cd86cfd33cb')#输入账号browser.find_element_by_id("oauth_uname_w").send_keys(names)#输入密码browser.find_element_by_id("oauth_upwd_w").send_keys(passwords)time.sleep(3)#点击登录browser.find_element_by_class_name("oauth_check_login").click()#线程强制停5秒等网页加载time.sleep(5)# 点击否 获取要点击元素的相对路径browser.find_element_by_xpath("iv/div[2]/div/div/span[2]").click()time.sleep(2)#点击提交browser.find_element_by_xpath("html/bodyv[1]/div[1]").click()time.sleep(5)# 退出浏览器# browser.quit()print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Success!")x=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())data = {"msgtype": "text","text": {"content": x+"用户"+renames+" "+'打卡成功'},"isAtAll": True}res = requests.post(webhook, data=json.dumps(data), headers=headers) #发送post请求print(res.text)except:print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())+": Clock Fild!")x=time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())data1 = {"msgtype": "text","text": {"content": x+"用户"+renames+" "+'打卡失败请手动打卡'},"isAtAll": True}res = requests.post(webhook, data=json.dumps(data1), headers=headers) #发送post请求print(res.text)
#循环每个用户
for i in range(10):renames=rename[i]names=nam[i]passwords=password[i]work(names,passwords,renames)
(五)定时部分
可以利用windows定时任务,不过电脑要开机才会执行,最好是有个服务器。
易班自动打卡+钉钉机器人消息提醒相关推荐
- python钉钉自动打卡_用Python来实现钉钉自动打卡并发送邮件短信提醒
用Python来实现钉钉自动打卡并发送邮件短信提醒 自从用钉钉打卡,老忘记打,只会python语言,所以用Python写了一个自动跑的脚本,每天定时跑.这样就避免忘记了. 之后把adb.exe所在的文 ...
- 钉钉机器人发送图片 python_python封装钉钉Webhook机器人消息发送逻辑
python封装钉钉Webhook机器人消息发送逻辑,目前仅支持python2. 安装 pip install dingmsgapi 初始化实例 from ding_msg_api import Ms ...
- 如何使用Python实现易班自动报送
别问,问就是懒 前言 整体思路 报送页面无法用网页打开?!Fiddler抓包攻破易班防线 改进升级你的自动报送程序 如何实现不同的账户的自动签到 增强鲁棒性,应对已经报送过的用户 如何提高报送效率,应 ...
- 钉钉小程序生态5—钉钉群机器人消息通知和钉钉工作通知
文章导航 钉钉小程序生态1-区分企业内部应用.第三方企业应用.第三方个人应用 钉钉小程序生态2-区分小程序和H5微应用 钉钉小程序生态3-钉钉扫码登录PC端网站 钉钉小程序生态4-钉钉小程序三方企业应 ...
- 钉钉群机器人消息通知
最近项目需要授权,需要及时通知授权失败的工单,所以就用到了钉钉机器人在群里实时通知,然后就写下了这篇文章.如果放到服务器出现域名错误修改hosts文件,在服务器执行vi /etc/hosts可直接修改 ...
- python实现易统计自动打卡
最近被老师安排提醒班级同学打卡,看到每天很多人忘记打就很心累,想着弄个自动打卡的,于是网上巴拉了一下,找到了主要接口.具体方法如下: 一.获取token值 每个用户都有固定的且不变的一个token值, ...
- 放个手机在单位自动打卡_钉钉自动打卡(家校打卡,寒假特辑)
这个寒假漫长而无奈,5:55之前打卡总感觉不舒服,我利用xposed edge pro进行打卡,经测试稳定有效. 一:在手机(仅限安卓)部署好:magisk(supersu) xposed(edxpo ...
- 钉钉自动打卡并微信通知打卡成功
关于自动打卡 因为公司经常性的加班,然后第二天上班会迟到,想着使用一台手机放在公司,然后每天自动打上班卡,并且使用微信进行通知我是否打卡成功. 逻辑设计 1.运行脚本 2.对比当前时间与设置的打卡时间 ...
- 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群
今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...
最新文章
- FlashDevelop Android开发.md
- 目标管理和任务协作,用智办事更方便
- 重磅!腾讯发布AI生态计划将赋能1000合作伙伴!
- Flutter React编程范式实践
- 吉林大学计算机科学与技术学院王欣,应用改进迭代最近点方法的点云数据配准...
- Apache ab并发负载压力测试
- 优动漫PAINT拾色器功能介绍
- Android Bluetooth源码结构
- 客户端无法向springcloud注册中心注册服务,提示连接超时
- 【mirror】国内镜像站,没事翻一翻
- 微信公众号群发功能的页面元素加载不全的解决办法
- Cannot mix different versions of joi schemas报错解决方案
- 比较实用的一个知识点——Android:interpolator用法
- 合泰HT1632C点阵LED芯片 的emuSPI驱动(即软件GPIO模拟方式)
- MATLAB中根据两点的经纬度求距离
- 模拟苹果验证服务器,[原创]苹果 gsa 服务器login 算法
- IE浏览器停止服务,曾经的王者为何退役?解析浏览器背后的技术是什么?
- H5调用用户摄像头并实现拍照功能
- Yocto系列讲解[理论篇]31 - Linux kernel相关的任务
- 小学语文阅读测试软件,小学语文同步课堂