前言

之前一直尝试实现模拟登陆广工统一认证系统,但是都未能取得成功。最近在同学的帮助下,终于实现了这一目标。
一直失败的原因:URL的错误选择

错误URL:http://authserver.gdut.edu.cn/authserver/loginservice=http%3A%2F%2Fjxfw.gdut.edu.cn%2Fnew%2FssoLogin

正确的URL(可以从html里得到):
http://authserver.gdut.edu.cn/authserver/login;
cookie
?service=http%3A%2F%2Fjxfw.gdut.edu.cn%2Fnew%2FssoLogin

疑惑

我把cookie放在headers里面,无法登陆。而只有放在URL里才能正常登陆,确实让我很疑惑。

代码

"""
author victory
date 2020/1/12"""import http
import re
import ssl
from http import cookiejar
from urllib import request, parse
from urllib.request import HTTPCookieProcessor# 取消全局证书,这一步必须,教务系统升级后出现的问题
ssl._create_default_https_context = ssl._create_unverified_context# 相当于CookieStore,用于管理cookie
cj = http.cookiejar.MozillaCookieJar()
pc = HTTPCookieProcessor(cj)  # cookie处理器
opener = request.build_opener(pc) # 创建URL打开器
res = opener.open('http://authserver.gdut.edu.cn/authserver/login?service=http%3A%2F%2Fjxfw.gdut.edu.cn%2Fnew%2FssoLogin')
res_str = res.read().decode()# 抓取登陆链接
login_str = re.findall('/authserver/login;.+\?service=http%3A%2F%2Fjxfw.gdut.edu.cn%2Fnew%2FssoLogin', res_str)[0]# 抓取表单数据之一
lt = re.findall('<input type="hidden" name="lt" value=".+"/>', res_str)
lt = re.findall('value=".+"', lt[0])
lt = lt[0][7:len(lt[0]) - 1]# cookie 已经在链接里面了,所以不需要把cookie放在headers里,
# 否则无法登陆,
# 原因未知'''
for e in cj:print(e)headers = {'Cookie': e.name + '=' + e.value,'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4003.0 Safari/537.36 Edg/81.0.381.0'}print(headers)
'''# 表单数据
data = {'username': 'xxxxx','password': 'xxx','dllt': 'userNamePasswordLogin','execution': 'e1s1','_eventId': 'submit','rmShown': '1','lt': lt
}# 登陆链接
login_url = 'http://authserver.gdut.edu.cn' + login_strreq = request.Request(login_url,data=parse.urlencode(data).encode())
res = opener.open(req)# 这里要注意,一共有3个cookie,
# 因为登陆行为发生了3次重定向,
# 只需要取教务系统的cookie即可,
# 这里是最后一个
for e in cj:headers = {'Cookie': e.name + '=' + e.value}# 抓取成绩
req = request.Request('https://jxfw.gdut.edu.cn/xskccjxx!getDataList.action?xnxqdm=201901&page=1&rows=50&sort=xnxqdm&order=asc',headers=headers
)
res = opener.open(req)
print(res.read().decode())

模拟登陆广工统一认证系统相关推荐

  1. 【统一登录认证】企业微信统一认证系统流程整理 流程图 时序图

    [统一登录认证]企业微信统一认证系统流程整理 流程图 / 时序图

  2. 统一账号/统一认证系统的引入和搭建(LDAP)

    为什么需要统一账号/统一认证? 没人喜欢记忆一大堆混乱的账号和密码,员工不喜欢,企业更不喜欢. 企业要高效解决业务和研发问题,必须在初创期规划搭建必要的企业软件和研发工具,也就是进行IT基础设施中软件 ...

  3. [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)

    前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 ,ldap部署相关,ldap双机\LAM配置管理\ldap备份还原,目前来说,我们已经有了高可用性的ldap环境了 ...

  4. 单点登录、统一认证解决方案(一)

    单点登录.统一认证解决方案(一) 随着数字化的不断普及,大型公式或者单位的各个部门逐渐的上了与本身业务相关的各种各样的系统(在这些系统中,以 Web 系统居多),几乎每个系统都需要识别操作者的身份,并 ...

  5. CAS 介绍 单点登录认证系统

    CAS 介绍  CAS(Central Authentication Service),是耶鲁大学开发的单点登录系统(SSO,single sign-on),应用广泛,具有独立于平台的,易于理解,支持 ...

  6. 单点登录、统一认证解决方案

    随着数字化的不断普及,大型公式或者单位的各个部门逐渐的上了与本身业务相关的各种各样的系统(在这些系统中,以 Web 系统居多),几乎每个系统都需要识别操作者的身份,并根据其不同的身份,分配一定的权限, ...

  7. java单点登录统一认证,JEECG 集成KiSSO单点登录实现统一身份认证

    JEECG 集成KiSSO单点登录实现统一身份认证 JEECG 如何为其他第三方系统实现统一身份认证服务,实现单点登录? 第三方系统如何对接呢? 今天为大家揭开这层面纱,让大家了解实质,使用它更快速的 ...

  8. 【区块链技术工坊47期】众享比特:区块链医疗方案和分布式认证系统

    1. 活动基本信息 1)题目: [区块链技术工坊47期]区块链医疗方案和分布式认证介绍 2)议题: 北京众享比特科技有限公司成立于2014年,是国内最早从事区块链底层平台和应用案例开发的技术服务公司. ...

  9. ldap 统一认证 java_如何在你的系统里集成LDAP统一认证

    一.为什么需要统一认证 日常办公经常会有多套系统,如果各个系统各自维护一套用户认证,用户需要记住多个用户名密码. 系统各自管理用户认证的方式,不但会有重复建设的问题,用户体验也会差,经常会有用户忘记密 ...

  10. 统一身份认证系统的简单看法

    [事件背景]洋葱服务为什么没被成功接盘?_搜狐科技_搜狐网 https://www.sohu.com/a/124452755_354899 今天无意中看到这则新闻,发现人家洋葱认证服务已经停运1年多啦 ...

最新文章

  1. 哈啰程序员吐槽:试用期带5个人创造了部门历史最高成绩,结果却被辞退
  2. 网站推广专员浅析网站推广对企业运营优化的重要性不可忽视
  3. linux 单个网卡配置多个IP
  4. 科大星云诗社动态20210521
  5. 数据库设计与开发概述
  6. centos7安装flink集群_《从0到1学习Flink》—— Flink 写入数据到 Kafka
  7. 现在的年轻人,正在努力的改变着一些东西
  8. C++ 类和对象成员特性
  9. 畅通工程(HDU-1232)
  10. python返回函数值并退出函数_Python函数的返回值和作用域
  11. Scrapy爬虫框架入门
  12. WAP开发资料站(最新更新)
  13. halcon学习之运动跟踪定位
  14. 前端----JavaScript
  15. java随机数种子_使用种子的Java随机数
  16. 指投:3 常见的指数基金品种
  17. java+selenium键盘操作
  18. linux cat 文件乱码
  19. cmake:pkg_check_modules
  20. Java在Quant应用_GitHub - tigerfintech/tiger_quant: Java 实盘量化框架

热门文章

  1. 创建华为云服务器实验报告,华为云正式发布云端实验室,真正实现云服务实验云上做...
  2. RecordCount = -1问题
  3. TypeScript系列教程十一《装饰器》 -- reflect-metadata
  4. Android手动创建活动并注册AndroidManifest.xml
  5. 矩阵论比较好的书 和 相关资源
  6. assets文件夹资源的访问
  7. Word VBA 表格宏处理
  8. ASP.NET Web Forms - 教程
  9. SpringBoot防止大量请求攻击
  10. 21碳纤维山地车哪个牌子好全球最贵辐轮王土拨鼠自行车965万