因为最近想用树莓派搞个远程监控系统,又因为学校的网需要从网页登录而树莓派又不方便搞个显示器带着,所以寻思着搞个能够自动登录校园网的脚本程序,省去了每次都要打开浏览器输入账号密码的烦恼.
1.工具
火狐浏览器+firedebug插件,debug插件可才浏览器中附加组件中添加,其他浏览器也可以只要可以监控浏览器的网络行为即可.
python+requests包
2.步骤
1) 先打开到登录界面,然后在按f12打开firedebug插件,此时debug无任何记录行为,然后点击刷新按钮,再点击登录按钮,再次调出debug点击控制台选项卡,这时会发现很多get方法加上最后由登录产生的POST方法,如图所示
2) 点击POST方法的小箭头会发现,浏览器的请求头header信息,这个需要我们保存下来(不是响应头),
3) 查看POST选项卡中的内容,其中的变量和参数都需要保存下来,这里面可以看到其中的password是被加过密的.如果只是登录自己的账号密码,那么程序到此可以结束.把其中的数据用自己抓到的数据替换使用下面代码即可登录校园网.
import requests #登录地址 post_addr="http://a.nuist.edu.cn/index.php/index/login" #构造头部信息 post_header={ 'Host': 'a.nuist.edu.cn', 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0', 'Accept': 'application/json, text/javascript, */*; q=0.01', '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', 'Referer':'http://a.nuist.edu.cn/index.php"" src="/UploadFiles/2021-04-08/20180422093253.jpg">5) 查看左侧文件名能够直接猜测到作用有login.js,md5.js,client.js,usercss.js.既然md5不是password加密方式那么查看其它js代码.幸运的是点开第一个base64代码敏感的发现这篇代码就是一种编码方式,赶紧百度之,发现base64果然是一种编码方式,趁热打铁百度python的base64编码实现,发现python早已集成base64的包,利用此包再次对密码进行编码….发现结果和抓到的postdata一毛一样,至此写一个通用的程序指日可待!!
完整代码如下(粗犷版):
#!/usr/bin/python3 # -*- coding: utf-8 -*- ''' FileName:conNet.py Author:shenhuixiang Copyright(c)2017,shenhuixiang ''' import base64 import requests ''' 输入账号密码和登录的网络 网络参数为如果是移动的则填写CMCC 如果是学号则填NUIST ''' USER_ACCOUNT='110' DOMAIN_SELECTION='CMCC' USER_PASSWATD='123456' #登录地址 post_addr="http://a.nuist.edu.cn/index.php/index/login" #构造头部信息 post_header={ 'Host': 'a.nuist.edu.cn', 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0', 'Accept': 'application/json, text/javascript, */*; q=0.01', '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', 'Referer':'http://a.nuist.edu.cn/index.php?url=aHR0cDovL2RldGVjdHBvcnRhbC5maXJlZm94LmNvbS9zdWNjZXNzLnR4dA==', 'Content-Length': '67', 'Cookie':'_gscu_1147341576=059821653286gq10; sunriseUsername='+USER_ACCOUNT+'; sunriseDomain='+DOMAIN_SELECTION+';sunriseRememberPassword=true; sunrisePassword='+USER_PASSWATD+'; PHPSESSID=hb0o9bkct2f6ge164oj3vj0me5;think_language=zh-CN', 'Connection':'keep-alive', } ''' password在post的参数中经过base64编码, 为了查找password加密方式...吐血三升. ''' post_data={'domain':DOMAIN_SELECTION, 'enablemacauth':'0', 'password':base64.b64encode(USER_PASSWATD.encode()), 'username':USER_ACCOUNT } #发送post请求登录网页 z=requests.post(post_addr,data=post_data,headers=post_header) #z.text为str类型的json数据因此先编码成byte类型在解码成unicode型这样就可以正常输出中文 s=z.text.encode('utf-8').decode('unicode-escape') print(s)以上这篇python实现校园网自动登录的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
最新资源
- 群星《说唱梦工厂 第11期》[320K/MP3][63.25MB]
- 群星《说唱梦工厂 第11期》[FLAC/分轨][343.07M
- 群星《闪光的夏天 第5期》[320K/MP3][79.35MB]
- 秀兰玛雅.1999-友情人【大旗】【WAV+CUE】
- 小米.2020-我想在城市里当一个乡下人【滚石】【
- 齐豫.2003-THE.UNHEARD.OF.CHYI.3CD【苏活音乐】
- 黄乙玲1986-讲什么山盟海誓[日本东芝版][WAV+CU
- 曾庆瑜1991-柔情陷阱[台湾派森东芝版][WAV+CUE]
- 陈建江《享受男声》DTS-ES6.1【WAV】
- 群星《闪光的夏天 第5期》[FLAC/分轨][392.38MB