南京某职业技术学院自动打卡(解放双手)
Posted 家眷
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了南京某职业技术学院自动打卡(解放双手)相关的知识,希望对你有一定的参考价值。
这个是好久之前的写的 纯粹是因为懒 所以今天才发给大家!!!
在学校里面也不出去,每天都要完成重复的信息填报,于是决定自己动手写一个来解放自己!
下面是学校官网的链接,点进去分析一下
https://i.njcit.cn/EIP/user/index.htm
按照惯例F12,研究了一番,发现还不如用webdriver
有了思路,直接开始写登陆
使用xpath定位需要的使用的元素,然后直接开撸
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome
url = 'https://i.njcit.cn/EIP/user/index.htm'
driver.get(url=url)
sleep(4)
driver.find_element_by_xpath('//*[@id="userName"]').send_keys(输入你的账号)
driver.find_element_by_xpath('//*[@id="password"]').send_keys(输入你的密码)
driver.find_element_by_xpath('//*[@id="root"]/span/div[4]/div[2]/div[1]/div[1]/div/div/form/div[4]/button[1]').click() # 点击登陆
sleep(4)
# 没事就暂停一下 让系统加载出来方便寻找需要的元素
当我们登陆进来了。下一步应该怎么做?
https://i.njcit.cn/EIP/cooperative/openCooperative.htm?flowId=5e407b9770f7847701712e33bc8c6b49
这个链接就是我们要用到的打卡链接,所以需要加一个段,让我们登陆之后进入这个界面
urls = 'https://i.njcit.cn/EIP/cooperative/openCooperative.htm?flowId=5e407b9770f7847701712e33bc8c6b49'
driver.get(url=urls)
sleep(4)
#如果我们打过卡了应该怎么办?我们就在下面加一个判断,来告诉我们有没有打过卡!
web_html_str = driver.page_source
result_list = re.findall("每天只能打卡一次哦", web_html_str)
number = len(result_list)
if number != 3:
return None
else:
return '你还没有打卡!'
好了,有同学要说了,我没打卡,登陆进去了,然后咋办?
当然昂,正常打开打卡页面,宿舍号,辅导员这些都是有滴
#现居何地
driver.find_element_by_xpath('//*[@id="HT42D71B$text"]').send_keys(输入自己现在的居住地)
# 风险地区
element = driver.find_element_by_xpath('//*[@id="mini-33$ck$1"]')
driver.execute_script("arguments[0].click();", element)
上面我放着两个案例,不是小傻子的同学应该都可以看懂这里面的道理!
定位到他们的元素,如果是需要填写的就 .send_keys()
如果是按钮需要点击就写 .click()
眼看着就要完工了是吧,又有问题了!
有同学就要问了,下拉框怎么解决啊?
怎么解决?我也不会啊!
# 注意每一个下拉框的元素是不一样的,需要同学们自己去定位一下哦
# 选择健康
driver.execute_script("OO11(this,'mini-buttonedit-button-hover');") # 运行下拉框的js事件
driver.execute_script("l0o1o(this,'mini-buttonedit-button-hover');") # 运行下拉框的js事件
driver.find_element_by_xpath('//*[@id="DRSTZK"]/span/span/span[2]/span').click() # 点击下拉框
driver.find_element_by_xpath('//*[@id="mini-15$0"]/td[2]').click() # 进行选择
剩下的就是定位提交按钮,点击提交就好啦!
是不是非常的简单?
这时候肯定有同学又要问了:我给自己一个人打卡,这样的话还不够麻烦的呢!
问到精髓所在了!我也有办法啊!!
我们直接吧需要打卡的同学数据存储在表格里面不就行了?
等下我会分享给大家供大家享用
这时候,如果还有同学提问,我就是想不起来打卡,才写的自动打卡,你这样弄不还是需要我自己手动?
不要着急嘛,打包好的程序下载链接我就放在下面,需要的你们自取,然后放到服务器定时运行就行了,一定要记得安装谷歌浏览器和对应的谷歌驱动哦!
如果说不知道放到服务器有没有正常打卡,也很简单!推送不就行了?
个人建议使用qmsg的推送机器人,方便使用,只需要调用接口就行了,如果懒得申请的可以私信我,我给你机器人使用
因为高中语文写的不是很好,说的可能有的地方不是很清楚,希望大家可以谅解
第二就是之所以使用webdriver,是因为登陆有加密,如果有大佬帮我改进更好
当然我写这个是懒,大家拿去用不要用于商业用途
而且我也希望大家可以认真对待信息填报,疫情防控,人人有责
如果有问题的小伙伴可以评论,或者私信我,我会给大家解决的
最最最后一点,希望大家可以给我一个关注 谢谢了!
以上是关于南京某职业技术学院自动打卡(解放双手)的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis Generator 代码自动生成器,从此解放你的双手