许昌学院校园网服务大厅模拟登录
声明
本程序为技术学习交流使用,请勿以任何形式做非法的事情.
做这个的起因
之前做教务系统中途被绊住了,然后就很久做不出来,为了找回信心,就又找了个更简单的页面去登录,然后就试了试这个服务大厅,发现果然很简单
这个很简单,有想法的同学可以做一个校园服务平台,具体的接口怎么抓的,相信大部分人都会的,我也不再赘述,如果实在不会可以看我另外一个校园教务系统的爬虫,这个笔那个简单,没有什么复杂的不过用到了一个js加密的文件,需要自己再网站里面下载下来
登录页面
登录成功页面
思路
在页面里获取登录需要的参数,然后引入网页的encrypt.js
加密的文件,通过python的js解析器运行加密函数加密登录密码,然后通过session.post()把参数提交给服务器登录,通过查询返回信息里面的关键词判断是否登陆成功.登陆成功后即可查询信息.
程序
下面是代码:
#查询信息接口http://ehall.xcu.edu.cn/jsonp/userDesktopInfo.json
import requests
#正则库
import re
#调用js文件加密所用的库
import execjs#登录接口
def login(sess, uname, pwd):#登录接口login_url = 'https://authserver.xcu.edu.cn/authserver/login?service=http://ehall.xcu.edu.cn/login?service=http://ehall.xcu.edu.cn/new/index.html'#访问网页获取加密所需数据get_login = sess.get(login_url)#设置访问信息的编码为utf-8get_login.encoding = 'utf-8'#提取出来登录参数 lt,salt,executionlt = re.search('name="lt" value="(.*?)"', get_login.text).group(1)salt = re.search('id="pwdDefaultEncryptSalt" value="(.*?)"', get_login.text).group(1)execution = re.search('name="execution" value="(.*?)"', get_login.text).group(1)#打开js加密库读入加密文件f = open("encrypt.js", 'r', encoding='UTF-8')js = f.read()#将js字符串导入到js解析器ctx = execjs.compile(js)f.close()#使用js函数进行加密password = ctx.call('_ep', pwd, salt)#post信息personal_info = {'username': uname,'password': password,'lt': lt,'dllt': 'userNamePasswordLogin','execution': execution,'_eventId': 'submit','rmShown': '1'}#使用post登录post_login = sess.post(login_url, personal_info)#设置数据编码格式post_login.encoding = 'utf-8'#判断是否登录成功if re.search("信息", post_login.text):print("SUCCESS!")else:print("FAILED!")pass#访问一下信息接口stuInfor = sess.get('http://ehall.xcu.edu.cn/jsonp/userDesktopInfo.json')print(stuInfor.text)
pass#主函数
def main():username = '学号'password = '密码'#创建一个session会话sess = requests.session()login(sess, username, password)#访问完毕关闭会话sess.close()
passif __name__ == '__main__':main()
pass
代码还有待改进,有不足之处希望各位大佬能给指出完善
许昌学院校园网服务大厅模拟登录相关推荐
- Python爬虫——简易模拟登录【以科文学院教务官网为例】
实战:对科文教务系统进行拦截 科文学院教务系统内网地址:http://10.110.240.221/jsxsd/ 进入官网后再打开拦截. 输入一个错误的账号密码进行试探. 点击登陆按钮,进行拦截,可以 ...
- node.js爬虫-校园网模拟登录
爬虫的主要目的是将互联网上的网页下载到本地形成一个互联网内容的镜像备份.当我们将学号.密码及验证码提交后,浏览器首先通过与服务器进行连接,确认我们填的信息正确后,服务器会生成一个sessionId来表 ...
- python爬虫token_Python入门:模拟登录(二)或注册之requests处理带token请求
转自http://blog.csdn.net/foryouslgme/article/details/51822209 首先说一下使用Python模拟登录或注册时,对于带token的页面怎么登录注册模 ...
- 泛微数字化高校运营平台:统一办公平台、服务大厅
近年来,国家多次发布政策驱动教育行业的数字化转型:2018年,<教育信息化2.0行动计划>中明确建立健全教育信息化可持续发展机制,构建网络化.数字化.智能化.个性化.终身化的教育体系.此后 ...
- .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...
这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...
- 第26讲:模拟登录爬取实战案例
在上一课时我们了解了网站登录验证和模拟登录的基本原理.网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个 ...
- Python爬虫实战之(五)| 模拟登录wechat
作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...
- Django(part49)--用Django自带的User模型类进行模拟登录
学习笔记,仅供参考 用Django自带的User模型类进行模拟登录 基于上个Blog中学习的用户认证系统,我们再用Django自带的User模型类,进行模拟登录(模拟登录的意思就是没有真正的登录,不涉 ...
- Python爬虫实战之(五)| 模拟登录wechat 1
作者:xiaoyu 微信公众号:Python数据科学 知乎:Python数据分析师 不知何时,微信已经成为我们不可缺少的一部分了,我们的社交圈.关注的新闻或是公众号.还有个人信息或是隐私都被绑定在了一 ...
最新文章
- 系统测试和集成测试的区别
- 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)
- [Abp vNext 源码分析] - 18. 单元测试
- centos 6.5/redhat 6.5 网卡配置有问题
- 实地址模式下的中断向量表
- 查看JDK进程信息的几个命令
- hive 下载和导入数据 hive -e
- python3中文长度_python3获得汉字长度
- 文件分配方式-索引分配
- python 当前日期_python 当前时间获取方法
- 最简行阶梯矩阵生成器
- CSPS2019Day1T2(括号树)题解
- esxi 虚拟机的控制台上键盘无法输入
- 计算机专业就业率最低: 正规军干不过游击队收藏 面对当今的研究生教育——只有无奈我国教育中令人揪心的若干个不等式...
- 用matlab编写一段将jpg图片格式转换成tiff格式
- ssh 免IP密码登陆远程服务器设置
- STM32移相全桥电源方案
- 【2023考研学校信息】灰灰考研,最新版
- (第二版)零基础入门Python小甲鱼-笔记-第三章-p5
- ps aux 状态介绍