python计算学分绩点的程序_模拟登录教务系统计算GPA的小程序

做了一些小游戏之后开始慢慢体会敲代码是件体力活,慢慢熬总能熬出来的。这几天又心血来潮想写个程序模拟登录教务系统计算GPA的小程序。不过之前没有一点点网络编程的经验,就趁着期中考后放假4天,一点点把坑填上。

最近对Java语言有莫名好感。原本也打算用Java开发,但事明Java在网络编程方面似乎比python麻烦,加上Java一个方法用错导致学校教务系统误以为我在进行SQL注入把我的ip封了(。。。)从此下定决心用python写。

cookie用于记录登录后的会话状态。

# 保存tall_opener(opener)

先用浏览器登录教务系统,打开控制台分析登录网页需要post哪些消息和找出真正的请求网页。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

由两图分析得到真实的请求网页是:121.251.19.29/pass.asp

登录需要post的数据为:UserStyle,user,password,其中UserStyle是radio类型,看网页源代码得到分为student,teacher和OtherUser三种。

接下去发送post请求。

url = '121.251.19.29/pass.asp' h = urllib2.urlopen(url) info = {'UserStyle': 'student', 'user': user, 'password': psw} info = urllib.urlencode(info) req = urllib2.Request(url, info) urllib2.urlopen(req)

成功登录后,找到成绩查询的选项点击,找到请求的网页为:121.251.19.29/student/asp/Select_Success.asp

a4c26d1e5885305701be709a3d33442f.png

打开请求网页,读取成绩页面源代码

req = urllib2.Request('121.251.19.29/student/asp/Select_Success.asp') resData = urllib2.urlopen(req) res = resData.read() # 读取成绩页面

用正则表达式过滤所有HTML标签。剩下的内容进行解析。显示成绩的表格有周期性规律,提取对应科目的成绩和学分,最后计算平均分和绩点。

当然,如果帐号或密码输入错误,则请求登录失败,会提示用户重新输入帐号密码。下面找了几个同学的帐号来测试。

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

最后还稍微抖个机灵,帐号成功登陆后会把帐号密码发到我的邮箱

python模拟发普通文本邮件的内容就不写了。。直接开源吧:ly941122/CalGPA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值