目录
简介
环境配置
实现过程
分析校园网登录页面,获取URL
编写代码
运行程序
打包程序
使用说明
配置账号密码
设置开机启动
测试
简介
针对网页认证方式的校园网,实现登录的自动化。苦于校园网断线,断电重启之后无法借助远程软件(teamview、todesk、向日葵等)进行远程的问题。
1、开机自动连接
2、设置时间检查登录状态 自动重连
环境配置
主要版本如下:
python3.9
requests 2.28.1
pyinstaller 4.8
建议安装conda创建新的虚拟环境,然后配置到pycharm,便于后续应用
新建环境:conda create -n name python=3.9 name换成自定义的英文名激活环境:conda activate name安装所需的包
conda install requestsconda install pyinstaller
实现过程
分析校园网登录页面,获取URL
打开登录界面,填入你自己的账号和密码(先别点击登录),然后按下 F12
点击了登录后:
这个 URL 中包含了学号和密码和IP(上图打码的地方);使用 GET 方式来登录,这意味着我们的账号和密码是直接以明文的形式出现在 URL 中,通过 GET 请求来登录校园网会方便很多
如果学校是像这样用 GET 请求直接登录的,可以试试复制,直接访问这个URL,如果可以直接登录,那边可以按照接下来的方法实现自动登录
编写代码
一般直接替换schoolWebLoginURL 为前文URL,将schoolWebURL替换为学校的验证网址,即可实现本机登录;
为便于打包使用、修改账号密码以及在不同的主机使用
创建data.txt文件 填写保存校园网账号密码
2. 基于socket自动获取本机IP
##@author:runepic#@date:1207# _*_ coding : utf-8 _*_import re # 正则表达式,用于匹配字符import requests # 用于向目标网站发送请求import timeimport socketimport datetimeschoolWebURL="http://10.10.10.9"# 函数 gethostname() 返回当前正在执行 Python 的系统主机名ip = socket.gethostbyname(socket.gethostname())print(ip)data = []file = open("data.txt",'r') #打开文件file_data = file.readlines() #读取所有行name = file_data[0].split(':')[1].replace('\n','') password = file_data[1].split(':')[1].replace('\n','') #tmp_list[-1] = tmp_list[-1].replace('\n',',') #去掉换行符while(True):response = requests.get(schoolWebURL)# print(response)# 正则表达式,匹配<title>标签中的内容pattern = pile('<title>(.*?)</title>', re.S)title = re.findall(pattern, response.text)title = title[0] # 将格式转为字符串# print(title)if title == '注销页': # 根据上面的分析填入相应的字符 # print("保持登录,请不要关闭窗口...")time.sleep(60*60)passelse:# 使用GET方式登录校园网# 这行是你需要根据自己的情况修改的地方schoolWebLoginURL = 'http://10.10.10.9:801/eportal/?c=Portal&a=login&login_method=1&user_account='+name+'&user_password='+password+'&wlan_user_ip='+ip+'&wlan_user_mac=000000000000&wlan_ac_ip=&wlan_ac_name=&jsVersion=3.0' # requests.get(schoolWebLoginURL)response = requests.get(schoolWebLoginURL).status_code # 直接利用 GET 方式请求这个 URL 同时获取状态码# print("状态码{}".format(response)) # 打印状态码if(response==200):print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"登录成功,请不要关闭窗口...")time.sleep(5)
运行程序
退出校园网,执行代码,检查是否登陆成功
打包程序
conda中激活自定义的环境,cd进入代码目录
输入:pyinstaller -F login.py
等待打包完成即可:
在 dist 目录下就有一个 exe 程序,将txt文件复制到dist文件夹中,像刚才那样断开校园网然后运行这个 exe 程序看看能否正常登录校园网
使用说明
配置账号密码
在data.txt文件中配置账号密码
设置开机启动
创建exe程序桌面快捷方式
Win+R 输入shell:startup回车执行
将快捷方式放入
测试
双击exe 显示本机IP即为正常状态 不要关闭窗口可保持校园网登录(每小时自动检查一次登录状态),不慎关闭可重新打开
设置开机启动之后,开机即可自动登录校园网,不要关闭窗口
如果觉得《[Python]校园网(网页认证)开机/断网自动连接》对你有帮助,请点赞、收藏,并留下你的观点哦!