python实现校园网一键自动连接

自己查了一下校园网点击链接后调出浏览器认证页面的机制叫 potral  具体介绍:https://blog.csdn.net/xianweijian/article/details/49450703

反正太复杂我是看不懂,那就简单暴力点:1,把跳出的浏览器进程kill掉   2,用爬虫实现自动登陆。

首先用cmd命令选择校园网:

netsh wlan connect name=i-NUIST

  

注意:如果这时候直接用爬虫登陆,还来不及连上网络,所以先暂停一秒再运行,同理 先运行杀死程序时可能edge还未跳出,总之具体顺序是:打开wifi——等待一秒——自动登陆——跳出浏览器——杀死浏览器

打开网络监听器fiddler

python实现校园网一键自动连接_第1张图片

获取请求headers和登陆网站名python实现校园网一键自动连接_第2张图片

再获得请求表单,这里密码是已经加密过的,我一开始以为是全校通用密码123321,结果没反应。。

用requests库post方法登陆。

 

这时potral会跳出浏览器界面让你认证,直接killtask(这里会跳出默认浏览器 我把edge设成默认以为chrome可能有别的页面以免被杀)

TASKKILL /F /IM MicrosoftEdge.exe
#/F指要杀死的程序 #IM 指程序名 

然后就ok了~run it 一键登陆完成

 

 

源码

 1 import requests
 2 import os
 3 import time
 4 
 5 def openwifi():
 6     os.system('netsh wlan connect name=i-NUIST')
 7     time.sleep(1)
 8     
 9 def killtask():
10     os.system('TASKKILL /F /IM MicrosoftEdge.exe ')
11 
12 def login():
13     thedata={'domain':'CMCC',
14            'enablemacauth':'0',
15            'password':'xxxx',
16            'username':'batt1ebear'
17           }     
18     theheader={
19     'Host': 'a.nuist.edu.cn',
20     'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0',
21     'Accept': 'application/json, text/javascript, */*; q=0.01',
22     'Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
23     'Accept-Encoding': 'gzip, deflate',
24     'Content-Type': 'application/x-www-form-urlencoded',
25     'X-Requested-With':'XMLHttpRequest',
26     'Referer':'http://a.nuist.edu.cn/index.php?url=aHR0cDovL2RldGVjdHBvcnRhbC5maXJlZm94LmNvbS9zdWNjZXNzLnR4dA==',
27     'Content-Length': '67',
28 
29     'Cookie':'_gscu_1147341576=059821653286gq10; sunriseUsername=123441534;\
30     sunriseDomain=NUIST;sunriseRememberPassword=true; sunrisePassword=123456;\
31     PHPSESSID=hb0o9bkct2f6ge164oj3vj0me5;think_language=zh-CN',
32     'Connection':'keep-alive',
33 }
34 
35     url="http://a.nuist.edu.cn/index.php/index/login"
36     p=requests.post(url,data=thedata,headers=theheader)
37     
38  
39 def main():
40     openwifi()
41     login()
42     killtask()
    os.exit(0)
43 44 main()

 

你可能感兴趣的:(python实现校园网一键自动连接)