分析校园网登录页面
打开登录界面,填入你自己的账号和密码(先别点击登录),然后按下 F12
点击了登录后:
获取登录请求的URL链接,可以看到南理校园网是使用POST的方式来登录的。
- 查看POST请求参数:
后面需要用到的是代表学号的username和代表登录密码的password。
编写代码
# _*_ coding : utf-8 _*_
import requests # 用于向目标网站发送请求
url = 'http://m.njust.edu.cn/portal_io/login' # 这行是你需要根据自己的情况修改的地方
data = {
"username": 'xxxxxx', # 你滴学号
"password": 'xxxxxx', # 你滴密码
}
# 下面这整个 header 都是需要根据网页中的请求头来做修改
# 下面这整个 header 是我的,你需要按照你自己浏览器中出现的 Response Headers (请求标头)来修改
header = {
"Accept": "application/json, text/javascript, */*; q=0.01",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
# "Cache-Control": "max-age=0",
"Content-Length": "108",
"Connectin": "keep-alive",
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"Host": "m.njust.edu.cn",
"Origin": "http://m.njust.edu.cn",
"Referer": "http://m.njust.edu.cn/portal/index.html",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36 Edg/118.0.2088.46",
"X-Requested-With":"XMLHttpRequest"
}
response = requests.post(url, data, headers=header) # POST 方式向 URL 发送表单,同时获取状态码
# print("状态码{}".format(response)) # 打印状态码
print(response.text)
print(response.status_code)
运行结果:
设置自动运行
在windows下设置自动运行校园网认证程序,我的主要思路是写一个bat脚本调用上面写的python代码,然后借助windows的定时任务功能定期执行bat脚本。
bat脚本内容:
@echo off
python network.py
rem timeout /t 2 /nobreak >nul
network.py为上面编写的python代码
通过命令行设置
设置每隔15min自动认证一次
schtasks /create /tn connect_network /tr E:\run.bat /sc minute /mo 15 /st 00:00:00 /et 23:59:00
实际发现这样只能自动认证一天,因此进入图形化界面修改任务有效期(也可以直接图形化界面新建任务)
打开路径:控制面板(可在命令行下输入control打开)-> 管理工具 -> 任务计划程序,打开主界面如下:
找到刚刚新建的任务名,双击它
修改触发器设置如下:
可根据需要修改运行间隔。
本人亲测自动认证有效
参考资料
自动登录校园网脚本(Python实现) - 知乎 (zhihu.com)
windows下之定时执行bat脚本_bat定时任务-CSDN博客