本来只是单纯因为懒而想到自动登陆脚本,但在CSDN中查询发现没有中北大学的脚本,故自己动手分析。下面是大概分析流程以及具体代码。
网页分析1.当我们连接校园网(Nuc-Student)时,浏览器会自动弹出校园网登陆页面,具体如下图所示。
2.这时利用F12浏览器开发者工具进入网络选项卡,再次刷页面得到全部请求。
3.可看到一个名为jquery-1.10.2.min.js的js文件,经百度得知jQuery是一个快速、简洁的JavaScript框架。
4.由于个人能力不足,一直找不到网站提交表单数据的方式。经过仔细分析发现提交表单的方法就在网站源码中,以jQuery 框架中ajax方法进行异步POST请求,数据则在id为login_form的form表单中,获取具体数据内容的源码不再展示。
代码实现
以下是具体实现代码,注意,data中的‘ssid’以下的所有数据都可以在你的登陆网页源码中找到,直接拿过来粘贴就行,值都是乱码,可能经过加密,但我在此仅以*做例,我们实际要输入和关心的只有自己的学号和密码。
# -*- coding: UTF-8 -*-
# date: 2022.06.18
# author: 学py的小菜鸡
import requests
loginUrl = 'http://10.252.249.22:8080/zportal/login/do'
data = {
'qrCodeId': '',
'username': '**********', # 即学号
'pwd': '**********', # 即密码
'validCode': '',
'validCodeFlag': 'false',
'ssid': '**********',
'mac': '**********',
't': "**********",
'wlanacname': '**********',
'url': '**********',
'nasip': '**********',
'wlanuserip': '**********',
}
response = requests.post(url=loginUrl, data=data)
# 验证是否登陆成功
print(response.text)
# 结果为Json数据{"message":"","nextPage":"goToAuthResult","result":"success"}


