使用python模拟登陆学校信息门户完成一键评教(二:登陆学分制网址)

接上一章,拿到了cookie就开始登陆学分制网站了。

进入信息门户,找到了学分制系统的入口:http://my.nuist.edu.cn/index.portal?.pn=p3629

页面如下:

按常理说,这个时候就可以拿到学分制管理系统的内容了,F12中也能发现里面的各种信息。但是点击网上评教之后我发现,事情没有这么简单。

点开network发现了这个

点开看看

发现新加载的数据是通过get方法请求了一个奇怪的链接。根据我多(几)年(天)的经验,括号里的东西肯定是加密过的,而且肯定会随着我不同时间登陆而改变,算法我也不清楚,那只能另辟蹊径,看看有没有其他地方有这个玩意。

再往下看请求头:

啊哈,cookie里面出现了熟悉的iPlaneDirectoryPro,这个我们已经搞到手了,但是后面又出现了一个MYWEBAPP.ASPXAUTH,这是啥玩意,又是网站什么时候传给我的浏览器的??

经过面向搜索引擎编程的我一番搜索,这个MYWEBAPP.ASPXAUTH大概就是个保护cookie的加密验证码的玩意,那么现在解决两个问题就能进入学分制网站了:1.找到链接 ;2.拿到MYWEBAPP.ASPXAUTH码 完成这些,就能get到学分制系统啦。

让我们返回信息门户,F12查看元素,果然找到了原因:

原来,学分制系统在信息门户中是一个iframe的嵌套页面,访问的网址也给了出来,但是当我们单独使用iPlaneDirectoryPro作为cookie访问学分制系统的时候就会出现这种情况:

所以还是得需要MYWEBAPP.ASPXAUTH让网站以为我们是在信息门户里面登陆的学分制系统。

让我们试着在network里面找找。。

果然,在other过滤选项中找到了上面嵌套的学分制的请求记录:

两个default_jz.aspx让我们一个个看

第一个default:

general:

请求的网址正好是iframe中写出的网址,但是返回码是302 Found重定向状态码,说明还跳转到了下一个网址。

返回头:

里面返回了另一个奇怪网址的一部分,这个应该就是他要跳转的下一个网址。

请求头:

cookie里只有iPlaneDirectoryPro,是我们能请求到的网址。

第二个default:

general:

请求的链接正好是上一个default返回头里链接的拼接!

返回头(暴躁打码):

终于找到MYWEBAPP.ASPXAUTH了!

请求头:

没啥区别的。

所以经过两次跳转,我们终于找到了MYWEBAPP.ASPXAUTH,接下来就是网址和请求头的提取拼接以及发送请求啦!

s = requests.session()
#登陆信息门户
response = s.get('http://my.nuist.edu.cn/index.portal?.pn=p3629',headers = newCookie)
result = response.text
#学分制.aspx
a_url =result.partition('<div class="ifrmLoading"></div><iframe src="')[2]
a_url =a_url.partition('" align')[0]
url = a_url
#禁止重定向的get请求
response = s.get(url,headers=newCookie,allow_redirects=False)
#重定向之后的default
result = response.headers['Location']
#第二次重定向的url
url = 'http://wlkt.nuist.edu.cn'+b_url
#第二次禁止重定向,得到 MYWEBAPP.ASPXAUTH
response = s.get(url,headers=newCookie,allow_redirects=False)
ASPXAUTH = response.headers['Set-Cookie']

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值