距离我的python课也结束很久了,今天突发奇想用Python来登录学校的教务系统来搞点事情。
说干就干,首先第一步打开我们的教务系统:
为了保护隐私,所以马赛克打的有点重,别见怪
打开浏览器的开发者模式中的network抓包,这里笔者用的是火狐浏览器。
随便填写个用户名和密码提交看看结果。
在这里我们能够发现,在输入了用户名和密码后点击提交,会发送一个文件名为login.action的post申请。
分析里面的请求,发现我们输入的原始密码和用户名没有经过任何加密就直接发送出去了,难怪不得平时都说教务系统是土豆服务器。
那么接下来我们就立马开始着手Python代码的书写。
准备工作完成后,点击运行,看看是否成功进入教务系统
oh!my god!看起来我们并没有成功进入教务系统,怎么会事呢?
这个时候返回去,检查我们的request语句
樂是不是我们的语句还缺少什么呢?只有我们给网站发请求,它不给我们分点东西是不是很可惜呢?
没错,我们的语句中还缺少了网站给的缓存cookie。进入教务系统,我们不仅要有正确的用户名和密码,还得有分配的合法身份!
那么,如何获取分配的cookie呢?事实上,在每次进入教务系统网站的时候,都会自动给我们分配一个cookie,我们所作的只要把cookie保存下来,以后每次行动都使用他就行了。
编写get_cookie函数,并把他加到程序最前面,后面每一次发送请求都使用第一次的cookie
哈哈,好尴尬,才发现password前面没有user,我就说怎么调试不成功。
好了,言归正传,所有准备工作都已经做好,现在我们开始实验吧!
实验成功,顺利进入教务系统主页!
进入教务系统后,我们点击成绩查询,查看自己的所有学期绩点,打开浏览器开发者们模式抓包,我们会得到以下信息
从消息头中得到接受我们请求的源网站,实现这一行动,我们只需要在python中向这个网址发送post请求就可以了。
最后呢,获取页面的所有txt,用BeautifulSoup美化后写入本地文件保存
至此为止,工程结束,希望我的博客能对你的python学习起到帮助



