最近形如课程格子与超表课程表应用如雨后春笋般涌现,他们自动获取课程表是怎么实现的呢。于是我用Java实现了一下模拟登陆正方教务系统获取课表的过程。
首先,我们先了解一下网站登录的原理:当我们输入学号,密码后点击登录后,浏览器会将我们输入的学号,密码,还有验证码等信息以post的形式发送到网站服务器的一个地址。网站服务器接收到post请求后,就会先验证输入的post过来的验证码是否正确,然后再验证用户名和密码。如果登陆成功,服务器就会生成随机串返回给浏览器,浏览器得到这个串后,就会作为cookies保存在浏览器。然后我们每次访问要获取登录后的数据都会提交这个串来验证是否已经登录。
所以,我们要获取课表信息的话,第一步必须要先登录教务系统,获取cookies。
那么我们怎么知道我要登录教务系统需要提交什么内容的表单呢?很简单,我们可以使用Fiddler来对我们登录教务系统的过程抓包。