模拟浏览器登录合肥工业大学新版教务系统获得课程表数据
将课程表转化为日历事件,生成ics文件
通过outlook邮箱/win10日历/手机日历导入ics文件
项目已完成
项目源码地址: /ssyu0808/HFUTICS
分析登录过程(感兴趣的可以自己抓包和分析页面源码)
get(http://jxglstu./eams5-student/login-salt)获得salt,也会携带着本次连接的cookie,以后的每次请求(post or get)均需要携带着这个cookie密码加密password = sha1(salt+"-"+password)post(http://jxglstu./eams5-student/login)表单数据(当然此次post携带的cookie需要和之前的get的cookie保持一致)
{"username":"学号","password":"加密后的密码","captcha":""}
到这里我们就成功地拿到了登入后的cookie,接下来需要什么数据我们就可以通过携带这个cookie来向服务器发送请求了
直奔主题,获取课表数据(datum)
分析页面(http://jxglstu./eams5-student/for-std/course-table)源码找到studentId
和semesterId
get(http://jxglstu./eams5-student/for-std/course-table/get-data?bizTypeId=2&semesterId=semesterId&dataId=studentId)从返回的json数据中得到lessonIds
post(http://jxglstu./eams5-student/ws/schedule-table/datum)表单数据,获取到datum(也即是所有课表信息)
{"lessonIds":`lessonIds`,"studentId":`studentId`,"weekIndex":""}
处理datum,处理成ics数据,导入到日历即可
结束
这里只是简要的说一下过程,详细分析步骤有时间再做。