模拟登陆正方教务系统,重定向一直解决不了〉
程序员文章站
2022-03-19 21:45:02
...
回复讨论(解决方案)
在线等,拜托各位
返回
这个网站没有使用 cookie 传递 sessionid 而是通过 url 传递的
所以你把这个写死是不行的:
http://jwxt.nbut.cn /(gnqj51blynlz1k45ufftjgux)/default_ysdx.aspx
而是应这样写
$url = 'http://jwxt.nbut.cn';$u = get_headers($url, 1);$login_url = 'http://jwxt.nbut.cn' . dirname($u['Location']) . '/default_ysdx.aspx';另外提交的参数应是关联数组,而非下标数组
$post_fields = array( 'TextBox1' => $user = '11480010126', 'TextBox2' => 'tianyun', 'RadioButtonList1' => '学生', '__VIEWSTATE' => 'dDw1MjQ2ODMxNzY7Oz5PMj6WMeVIzgWyGp6TS4sLvnQtaA==', "Button1" => " 登录 ",);注意:要使用 gbk 编码的
所以并不是重定向的问题,而是你根本就没有登录上去
用于现在返回的是 密码错误,所以无法再观察第二段 curl 的情况了
很多大学都用正方教务系统么?我们学校也是哎
2楼已经分析的很正确,我只作解释!
当输入网址http://jwxt.nbut.cn,服务端会重定向到一个网页,也就是在http://jwxt.nbut.cn后加上/随机串/default_ysdx.aspx,这个随机串存储到服务端的。所以你写死就是不正确的。
首先请求网址http://jwxt.nbut.cn。获取响应头中的Location,如图:
然后拼接你的url,再次访问http://jwxt.nbut.cn/Location/default_ysdx.aspx网址。这是一点。
2:查看源代码
提交的参数是关联数组,并非下表数组。
截部分图:
上面完成了!你就登录成功了。
我们学校也是这玩意==
但我用python写的时候怎么获取那个Location呢,谢谢
手动@二楼 @四楼