(一)声明

本文仅供学习交流使用,如有发热、感冒、咳嗽请及时根据当地疫情防控办法及时上报

(二)需求

首先,我双手支持和配合学校相关疫情防控政策。

其次,每天重复劳动让我们软件专业情何以堪。说干就干,自己动手,丰衣足食~

(三)准备工作

①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&timestamp='+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定时任务,不过电脑要开机才会执行,最好是有个服务器。

易班自动打卡+钉钉机器人消息提醒相关推荐

  1. python钉钉自动打卡_用Python来实现钉钉自动打卡并发送邮件短信提醒

    用Python来实现钉钉自动打卡并发送邮件短信提醒 自从用钉钉打卡,老忘记打,只会python语言,所以用Python写了一个自动跑的脚本,每天定时跑.这样就避免忘记了. 之后把adb.exe所在的文 ...

  2. 钉钉机器人发送图片 python_python封装钉钉Webhook机器人消息发送逻辑

    python封装钉钉Webhook机器人消息发送逻辑,目前仅支持python2. 安装 pip install dingmsgapi 初始化实例 from ding_msg_api import Ms ...

  3. 如何使用Python实现易班自动报送

    别问,问就是懒 前言 整体思路 报送页面无法用网页打开?!Fiddler抓包攻破易班防线 改进升级你的自动报送程序 如何实现不同的账户的自动签到 增强鲁棒性,应对已经报送过的用户 如何提高报送效率,应 ...

  4. 钉钉小程序生态5—钉钉群机器人消息通知和钉钉工作通知

    文章导航 钉钉小程序生态1-区分企业内部应用.第三方企业应用.第三方个人应用 钉钉小程序生态2-区分小程序和H5微应用 钉钉小程序生态3-钉钉扫码登录PC端网站 钉钉小程序生态4-钉钉小程序三方企业应 ...

  5. 钉钉群机器人消息通知

    最近项目需要授权,需要及时通知授权失败的工单,所以就用到了钉钉机器人在群里实时通知,然后就写下了这篇文章.如果放到服务器出现域名错误修改hosts文件,在服务器执行vi /etc/hosts可直接修改 ...

  6. python实现易统计自动打卡

    最近被老师安排提醒班级同学打卡,看到每天很多人忘记打就很心累,想着弄个自动打卡的,于是网上巴拉了一下,找到了主要接口.具体方法如下: 一.获取token值 每个用户都有固定的且不变的一个token值, ...

  7. 放个手机在单位自动打卡_钉钉自动打卡(家校打卡,寒假特辑)

    这个寒假漫长而无奈,5:55之前打卡总感觉不舒服,我利用xposed edge pro进行打卡,经测试稳定有效. 一:在手机(仅限安卓)部署好:magisk(supersu) xposed(edxpo ...

  8. 钉钉自动打卡并微信通知打卡成功

    关于自动打卡 因为公司经常性的加班,然后第二天上班会迟到,想着使用一台手机放在公司,然后每天自动打上班卡,并且使用微信进行通知我是否打卡成功. 逻辑设计 1.运行脚本 2.对比当前时间与设置的打卡时间 ...

  9. 配置 Hi提醒 让直播提醒机器人消息在主播开播自动推送消息到钉钉群

    今天我们来配置Hi提醒 实现指定主播开播时推送直播提醒消息到钉钉群 主要实现是创建好钉钉群机器人,然后推送信息时选择钉钉就行了. 该通道配置完成后可推送信息至你的钉钉群中,一次配置持久使用. 直接看操 ...

最新文章

  1. FlashDevelop Android开发.md
  2. 目标管理和任务协作,用智办事更方便
  3. 重磅!腾讯发布AI生态计划将赋能1000合作伙伴!
  4. Flutter React编程范式实践
  5. 吉林大学计算机科学与技术学院王欣,应用改进迭代最近点方法的点云数据配准...
  6. Apache ab并发负载压力测试
  7. 优动漫PAINT拾色器功能介绍
  8. Android Bluetooth源码结构
  9. 客户端无法向springcloud注册中心注册服务,提示连接超时
  10. 【mirror】国内镜像站,没事翻一翻
  11. 微信公众号群发功能的页面元素加载不全的解决办法
  12. Cannot mix different versions of joi schemas报错解决方案
  13. 比较实用的一个知识点——Android:interpolator用法
  14. 合泰HT1632C点阵LED芯片 的emuSPI驱动(即软件GPIO模拟方式)
  15. MATLAB中根据两点的经纬度求距离
  16. 模拟苹果验证服务器,[原创]苹果 gsa 服务器login 算法
  17. IE浏览器停止服务,曾经的王者为何退役?解析浏览器背后的技术是什么?
  18. H5调用用户摄像头并实现拍照功能
  19. Yocto系列讲解[理论篇]31 - Linux kernel相关的任务
  20. 小学语文阅读测试软件,小学语文同步课堂

热门文章

  1. Android调用相机拍照高清原图(兼容7.0)
  2. 系统学习编程笔记(十二)
  3. Web服务器工作原理详解(基础篇)
  4. 纯JS+HTML+CSS实现表格增删改查翻页--模板文件管理
  5. easyExcel的一些操作
  6. 如何让jar包显示Java图标
  7. 域用户不准更改计算机名,请教高手,域环境下如何不退域修改计算机名?
  8. 【Python网络编程】爬取百度贴吧、小说内容、豆瓣小说、Ajax爬微博、多线程爬淘宝
  9. 能力等同于学历吗?|猿代码科技
  10. JS逐页转pdf文件为图片格式