你描述的流程是只要登录信息门户(
xinxi.xxx.edu.cn )后,再访问教务系统查成绩页面(
jiaowu.xxx.edu.cn )无需再次登录,这类单点登录的模式常见于 4A 系统中,免去个人用户分别管理多个业务系统的账号 /密码的麻烦,其中,门户系统的账号称为主账号、教务系统的账号称为从账号。
门户系统为教务系统统一认证,一般有两种实现方式:
0 )(门户系统中_未存放_教务系统的密码)用户登录门户系统后,第一步,门户系统在服务端生成 token ,第二步,门户系统在服务端将 token 发给教务系统服务端,门户系统在服务端将 token 下发给用户客户端(浏览器),第三步,用户客户端拿着 token 去请求教务系统页面,第四步,教务系统服务端比对门户服务端发过来的 token 和客户端提交上来的 token 是否一致,若一至则完成教务系统鉴权并将结果 set-cookie ,反之亦然;
1 )(门户系统中_已存放_教务系统的密码)用户登录门户系统后,第一步,门户系统在服务端将预先存放的教务系统账号 /密码发给教务系统鉴权;第二步,教务系统自行完成鉴权。
显然,前者更优,做到了真正意义上的单点登录,免去主定期同步从系统账号 /密码的麻烦。具体到你说的场景中,抓取的
jiaowu.xxx.edu.cn/login.do?sessionid=xxxx ,我猜测也是采用的第一种实现方式, sessionid 等同于 token ,所以,如果你要通过爬虫访问教务系统,只要把登录门户后下发给客户端的 sessionid 提取出来,拼装进
jiaowu.xxx.edu.cn/login.do?sessionid=xxxx 后提交,然后提取教务系统鉴权完成后下发给客户端的 set-cookie ,后续的任何教务系统页面请求均带上该 set-cookie 即可。