python+定时任务 实现校园网自动登录

说明:因为我们学校校园网登陆需要网页认证,且每天3点左右会自动断网,所以需要设置定时任务,每天在断网后自动进行网络认证登录,
可能每个学校的断网时间和联网需求不同,需要在定时任务阶段设置不同的策略,比如每小时登录一次。

一、总览

  1. 使用Chrome或者其他浏览器查看校园网认证所需要的request HeadersForm Data
  2. 安装python环境,并将python加入系统环境变量,使用python编写发送http请求的处理流程;
  3. 在windows系统下需要编写bat脚本文件执行步骤2的python文件,并启动定时任务。linux请自行系统百度定时任务的设置方法;
  4. 如果windows系统需要锁屏状态写可以运行计划任务,则需要进行以下操作:查看 Task Scheduler 服务是否启动.没有启动它。.如果还不行的话在运行中,输入gpedit.msc选择 计算机配置 - windows设置 - 安全设置 - 本地策略 - 安全选项找到 “账户:使用空白密码的本地账户只允许进行控制台登录” 这个项目. 双击打开.把它设置为 “已禁用”.

二、具体步骤

  1. 使用Chrome浏览器进入网络认证界面,按F12,弹出监控台,点击Network,在页面上输入账户名和密码,点击登录或认证按钮,network会有记录。如下图为我们学校的登录界面。需要关注红色圈住的部分。认证界面
  2. 安装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=YUtl4F5w2GWDfWUA8O**********0MDW7tX1eoOzS00eusx19E0245ORqeeZHVwBzEd1DGI%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!")

  1. 在windows系统下需要编写bat脚本文件(login.bat)执行步骤2的python文件,并启动定时任务。脚本如下:
python E:\autoLogin\autoLogin.py

定时任务开启方式参考链接 https://blog.csdn.net/cdnight/article/details/53841921

本文参考链接:https://blog.csdn.net/shenhuaifeng/article/details/78333851

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐