校园网网页认证自动登录
python+定时任务 实现校园网自动登录
说明:因为我们学校校园网登陆需要网页认证,且每天3点左右会自动断网,所以需要设置定时任务,每天在断网后自动进行网络认证登录, 可能每个学校的断网时间和联网需求不同,需要在定时任务阶段设置不同的策略,比如每小时登录一次。
一、总览
- 使用Chrome或者其他浏览器查看校园网认证所需要的request Headers和Form Data;
- 安装python环境,并将python加入系统环境变量,使用python编写发送http请求的处理流程;
- 在windows系统下需要编写bat脚本文件执行步骤2的python文件,并启动定时任务。linux请自行系统百度定时任务的设置方法;
- 如果windows系统需要锁屏状态写可以运行计划任务,则需要进行以下操作:查看 Task Scheduler 服务是否启动.没有启动它。.如果还不行的话在运行中,输入gpedit.msc选择 计算机配置 – windows设置 – 安全设置 – 本地策略 – 安全选项找到 “账户:使用空白密码的本地账户只允许进行控制台登录” 这个项目. 双击打开.把它设置为 “已禁用”.
二、具体步骤
- 使用Chrome浏览器进入网络认证界面,按F12,弹出监控台,点击Network,在页面上输入账户名和密码,点击登录或认证按钮,network会有记录。如下图为我们学校的登录界面。需要关注红色圈住的部分。

- 安装python环境,并将python加入系统环境变量,使用python编写程序发送http请求,代码及说明如下:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import base64 import requests #此处根据自己校园网Form Data中发送的数据进行更改 action = 'login' username = '用户名' password = '密码' ac_id = '1' user_ip = '127.131.1.1' # 登录地址 post_addr = "http://wlrz.fudan.edu.cn/srun_portal_pc.php?ac_id=1&phone=1" # 构造头部信息 注意Cookie可能十分重要,而且Cookie会有过期时间(我们学校过期时间是1个月),过期之后,可能需要复制新的Cookie替换。 post_header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', 'Accept': '*/*', 'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding': 'gzip, deflate', 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest', 'Origin': 'http://wlrz.fudan.edu.cn', 'Referer': 'http://wlrz.fudan.edu.cn/srun_portal_pc.php?ac_id=1&&phone=1', 'Content-Length': '112', 'Cookie': 'login=YUtl4F5w2GWDfWUA8O0MDW7tX1eoOzS00eusx19E0245ORqeeZHVwBzEd1DGI%253D', 'Host': 'wlrz.fudan.edu.cn', 'Connection': 'keep-alive', } post_data = {
'action': action, 'username': username, 'password': password, 'ac_id': ac_id, 'user_ip': user_ip } # 发送post请求登录网页 z = requests.post(post_addr, data=post_data, headers=post_header) # s = z.text.encode('utf8') # print(s) print("login success!")
- 在windows系统下需要编写bat脚本文件(login.bat)执行步骤2的python文件,并启动定时任务。脚本如下:
python E:\autoLogin\autoLogin.py
定时任务开启方式参考链接 https://blog.csdn.net/cdnight/article/details/
本文参考链接:https://blog.csdn.net/shenhuaifeng/article/details/
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222384.html原文链接:https://javaforall.net
