大学生课程表的制作(1)——模拟登录

以原创教务系统为例


后台开发语言:Python
IDE:pyCharm
所需工具:Fiddler


首先先下载安装Fiddler,这是一个抓包工具,可以抓取所有的浏览器请求。我们打开Fiddler:
大学生课程表的制作(1)——模拟登录_第1张图片
大致整个软件分成了菜单栏,工具栏,两个显示窗口,低栏四部分。现在主要关注中间面积最大的两个部分,左边是会话捕捉窗口,右边显示着一些信息。由于我们只需要关注原创教务系统的相关请求,所以我们只监控原创的域名。我们打开filters,然后设置show only the following Hosts,可以看下图。最后action就行。大学生课程表的制作(1)——模拟登录_第2张图片
以上就是Fiddler的相关设置。
现在打开原创,可以看到fiddler已经监控了这个域名,我们把右边窗口切换到Inspectors:大学生课程表的制作(1)——模拟登录_第3张图片
接下来我们切换到浏览器,正常输入学号,密码,选择学生,点击登录。
大学生课程表的制作(1)——模拟登录_第4张图片
这时候我们知道我们发送了一个请求,这时候我们切换到fiddler查看我们的数据是怎么发送的,格式是什么样的大学生课程表的制作(1)——模拟登录_第5张图片
同时在左栏可以看到提交的真实网址。
所以简化版的登录就是:session.post(url,parms),其中url就是提交的真实网址,parms就是刚才所抓下来的表单数据。

studentsInfor = {'__EVENTTARGET':'',
                 '__EVENTARGUMENT':'',
                 '__VIEWSTATE':'这里原样复制下来就行',
                 'Cbo_LX':'学生'.encode('gbk'),#这里要注意中文的编码问题
                 'Txt_UserName':'这里填学号',
                 'Txt_Password':'这里填密码',
                 'Img_DL.x':'18',
                 'Img_DL.y':'1',
                 }

以上就是我们真实提交的数据。
提交的网址就是:http://www.ycjw.zjut.edu.cn//logon.aspx
然后我们用Python模拟登录一下:

import requests
studentsInfor = {'__EVENTTARGET':'',
                 '__EVENTARGUMENT':'',
                 '__VIEWSTATE':',
                 'Cbo_LX':'学生'.encode('gbk'),
                 'Txt_UserName':'',
                 'Txt_Password':'',
                 'Img_DL.x':'18',
                 'Img_DL.y':'1',
                 }

session = requests.Session()
s = session.post("http://www.ycjw.zjut.edu.cn//logon.aspx",studentsInfor)
print(s)

大学生课程表的制作(1)——模拟登录_第6张图片
可以看到我们模拟登录成功了。
这里需要补充说明的几点是,有同学可能会疑惑,那我后续操作怎么办,不用记录cookie么。答案是要cookie,但是我用了Requests库的session函数,它会持续跟踪会话信息,像cookie、header,运行HTTP协议的信息。
接下来我下一篇将在此基础上写怎么进行课表的抓取和排版。

你可能感兴趣的:(学生app开发,python,课表,爬虫)