CUMT中国矿业大学校园网自动登录脚本
CUMT中国矿业大学校园网自动登录脚本
背景
众所周知,CUMT是一个纪律严格的学校,工作日晚上断网不断电,并且由于我个人放浪不羁爱给电脑休眠😄,导致每天会经常需要重复登录校园网,而登录校园网是一个繁琐的过程,首先需要检查自己梯子下了没,然后还需要打开浏览器,访问一些网站,然后跳转到上网登录页,但是经常会有网站由于是https协议所以不能允许跳转,我自己访问百度就不能正常跳转。所以我们急需要一个简化这个操作的脚本,最好能一键登录。

在网上查找到的自动登录校园脚本,有些是涉及底层的方法,主要过程是获取IP和发送请求,比较难以。有一个博客提出了直接操作指令型的脚本(类似快捷指令,Word的宏之类的),本文基于博主的方法并且为了适应CUMT的校园网做出了一些改变。
脚本介绍
该脚本基于Python语言,并且用到了Python RPA库,代码不到50行,基本原理是直接代码化我们打开网页,输入学号密码选择运营商的操作。
RPA(Robotic Process Automation)库是一组用于开发和执行自动化流程的软件库和工具集合。RPA库包含了各种功能和组件,可以帮助开发人员创建和管理自动化流程,从而实现大规模、高效率的业务自动化。
Python RPA:Python RPA是一个基于Python编程语言的开源RPA库,其库提供了各种自动化组件和工具,如屏幕录制、Web自动化、数据处理等。
——from ChatGPT
import requests
import rpa as r
id = '' # 这里输入学号
pwd = '' # 这里输入密码
def auto_login():
data = requests.get("https://www.baidu.com/")
try:
_, url, _ = data.text.split("'")
except:
url = 'http://10.2.5.251/'
# print(url)
r.init(chrome_browser = True, headless_mode = False, visual_automation=True) # 第一次初始化,需要你的网络可以稳定的与 GitHub 进行通信,这里需要从 GitHub下载文件
r.url(url) # url函数会调用 Chrome 浏览器,并且访问我们传入的参数。
# 已登录则做退出处理
if r.exist('//*[@name="logout"]'):
r.close()
print("成功登录了哦!")
else:
# 登录操作
r.keyboard('[enter]') # 确认网址,让键盘从网址输入区来到网页页面区,方便后续键盘操作
# 先后进行输入学号,选择网络运营商,输入密码
r.type('//*[@type="text"]','[clear]' + id) # type 函数作用是输入文本,第一个参数XPath路径,选择类型名是type值是text的元素,这实际上是CMUT的学号输入文本区,第二个参数是清空操作加上要输入的学号
r.click('//*[@id="edit_body"]/div[3]/div[2]/select') # click函数作用是模拟鼠标点击,这里点击的元素是网络运营商下拉列表
r.keyboard('[down]'+'[down]'+'[enter]') # 模拟键盘操作向下键按两次(选择中国移动,如果是其他运营商请自行修改次数),然后回车确认
r.type('//*[@type="password"]', pwd+'[enter]') # 第二个参数是我们要输入的密码,如果字符串中包含 [enter] 将会在输入结束后按下回车键。
# 出现注销按钮说明成功登录
if r.exist('//*[@name="logout"]'):
print("成功登录了哦!")
r.close()
exit(0)
if __name__ == "__main__":
auto_login()
代码比较简单易懂,执行效果就是打开Google Chrome——》进入上网登录页——》输入学号密码选择运营商——》登录并退出。
接下来的封装成.exe文件,我就不赘述了。
说一下我加入Windows计划的步骤:
首先我的需求是在每次登录,即打开电脑输入Windows Pin之后,执行脚本。
- 此电脑右键管理打开计算机管理,点击任务计划程序,点击创建任务:

- 填写名称

- 填写触发器信息

附上编辑触发器各开始任务选项的含义:
按预定计划(On a schedule):此选项允许您按照特定的时间表或时间间隔运行任务。您可以指定任务运行的日期、时间和频率。
登录时(At log on):此选项允许您在用户登录到计算机时运行任务。当用户登录时,任务将自动启动。
启动时(At startup):此选项允许您在计算机启动时运行任务。任务将在系统启动时自动启动,无论用户是否登录。
空闲状态(On idle):此选项允许您在计算机处于空闲状态时运行任务。计算机将根据您指定的条件(如CPU使用率、磁盘活动等)自动检测空闲状 态,并在空闲状态下运行任务。
发生事件时(On an event):此选项允许您在特定事件发生时运行任务。您可以指定要监视的事件,例如日志事件、Windows服务事件或系统事件等。
创建/修改任务时(On task creation/modification):此选项允许您在创建或修改任务时运行任务。当您创建或修改任务时,该任务将自动运行。
当连接到用户会话时(On connection to user session):此选项允许您在用户会话开始时运行任务。例如,当用户通过远程桌面连接到计算机时,任务将启动。
当从用户会话断开连接时(On disconnect from user session):此选项允许您在用户会话结束时运行任务。例如,当用户从远程桌面断开连接时,任务将启动。
工作站锁定时(On workstation lock):此选项允许您在计算机被锁定时运行任务。例如,当用户按下Windows + L组合键锁定计算机时,任务将启动。
工作站解锁时(On workstation unlock):此选项允许您在计算机解锁时运行任务。例如,当用户从工作站解锁计算机时,任务将启动。
————ChatGPT
- 在操作页面加入脚本的位置

- 条件和设置页面根据需要自由更改,我希望即时在笔记本只使用电源条件下还能执行脚本,取消勾选如下信息

总结
这个自动化脚本使用Python RPA库,可以完全模拟网页的操作,可想而知,有更多的应用等待我们发掘,自动抢票啊啥的。但是有一个问题是执行很慢,甚至慢过我们正常手动去登录,主要原因应该是要下载文件。有机会应该还是要学一下涉及底层的脚本,效率更高。另外值得一提的是,由于我之前并没有用过RPA库,看英文文档效率还是不够高,所以我借用了ChatGPT来帮助我解决问题,不得不说ChatGPT在代码方面能力非常强,目前它已经成为我学习强有力的工具,未来是否会取代人写代码呢,让人堪忧。

浙公网安备 33010602011771号