python计算学分绩点_使用Python计算研究生学分绩(绩点)

最近看了CSDN上一个专栏《

具体过程专栏作者写得很清楚,详见

根据那篇博文,整个过程分为以下几步:

打开教务系统网站,查看登陆时发送了哪些信息,分析POST和GET信息,并在模拟登陆时使用;

进入网站后,查看如何与网站交互,同步骤一,分析这些信息,在模拟查询时使用;

使用爬虫模拟登陆和查询,得到成绩页面的html代码;

使用正则表达式提取得到的html代码中的所有成绩信息;

通过提取到的成绩信息计算平均学分绩。

具体操作细节可以参考上面那篇博文。此处不再赘述。

这里写一下我遇到的问题。上述博文中,作者登陆成绩查询系统后,直接找到成绩查询页面的URL就可以得到成绩页面的html代码,而在我们学校的教务系统中我却怎么也找不到该URL。经过N多次实验发现,我们学校查询的时候也会发送一个特定格式的POST信息,然后才会返回成绩页面,也就是说得再次模拟发送一次浏览成绩信息。感觉是由于自己对网站相关知识不了解,认为只要模仿就能取得结果,殊不知这里查询方式的不同,浪费了不少时间。

得到网页信息后,就需要写正则表达式来提取成绩信息。关于Python的正则表达式详见:

附上源代码:

1 #-*- coding: utf-8 -*-

2 #author: Kill Console

3 #功能:计算西工大研究生本学期成绩学分绩

4

5 importurllib6 importurllib27 importcookielib8 importre9

10 REQUIRED = '\xe5\xad\xa6\xe4\xbd\x8d\xe5\xbf\x85\xe4\xbf\xae\xe8\xaf\xbe' #必修

11 ELECTIVE = '\xe5\xad\xa6\xe4\xbd\x8d\xe9\x80\x89\xe4\xbf\xae\xe8\xaf\xbe' #选修

12

13 classNPUSpider:14 def __init__(self, stuid, pwd):15 self.login_url = 'http://222.24.211.70/grsadmin/servlet/studentLogin' #登陆url

16 self.query_url =

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值