Python爬内蒙古大学教务处并自动计算绩点(小窗体版)

直接上代码(可参考以前爬ecust的备注)

from tkinter import *
from time import ctime
import requests as rq
from pyquery import PyQuery as pq
def gpa(i):#定义绩点
    if i=="优":
        return 3.7
    if i=='合格':
        return 1.0
    i=float(i)
    if i>=90 and i<=100:
        return 4.0
    elif i<=89 and i>=85:
        return 3.7
    elif i<=84 and i>=82:
        return 3.3
    elif i<=81 and i>=78:
        return 3.0
    elif i<=77 and i>=75:
        return 2.7
    elif i<=74 and i>=71:
        return 2.3
    elif i<=70 and i>=66:
        return 2.0
    elif i<=65 and i>62:
        return 1.7
    elif i<=61 and i>=60:
        return 1.3
    elif i<=59 and i>=0:
        return 0
def cal(L):
    sum1=0#学分
    sum2=0#学分*绩点
    for eachline in L:
        if '选修' not in eachline[2] or '体育' in eachline[0]:
            sum1=sum1+float(eachline[1])
            sum2=sum2+float(eachline[1])*gpa(eachline[3])
    return sum2/sum1
def main(username='',password=''):
    urls=["http://jwxt.imu.edu.cn/loginAction.do","http://jwxt.imu.edu.cn/gradeLnAllAction.do?type=ln&oper=fainfo&fajhh=33416",username,password]
    H={"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Encoding":"gzip, deflate",
    "Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4",
    "Cache-Control":"max-age=0",
    "Connection":"keep-alive",
    "Content-Length":"30",
    "Content-Type":"application/x-www-form-urlencoded",
    "Host":"jwxt.imu.edu.cn",
    "Origin":"http://jwxt.imu.edu.cn",
    "Referer":"http://jwxt.imu.edu.cn/loginAction.do",
    "Upgrade-Insecure-Requests":"1",
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"}
    L0=[]
    L1=[]
    s=rq.session()
    data0={'zjh':urls[2],'mm':urls[3]}
    s.post(urls[0],data=data0,headers=H)
    pages=s.get(urls[1]).text
    doc=pq(pages)
    j=doc('table').filter('#user').find('td')
    for i in j:
        L0.append(pq(i).text())
    Lj=len(L0)
    #for i in range(0,int(Lj/8)):
    #    L1.append([L0[8*i],L0[8*i+1],L0[8*i+2],L0[8*i+3],L0[8*i+4],L0[8*i+5],L0[8*i+6],L0[8*i+7]])
    #返回n*8维 每一列和教务处对应
    for i in range(0,int(Lj/8)):
        L1.append([L0[8*i+2],L0[8*i+4],L0[8*i+5],L0[8*i+6]])
    #返回n*4 名 学分 属性 分数
    return L1
def insert2():
    T1.delete(0.0,END)
    T1.insert(1.0,"%s请耐心等待...."%ctime())
    username=E1.get()
    password=E2.get()
    L1=main(username,password)
    pages='\n'
    for eachline in L1:
        for items in eachline:
            pages=pages+items+'  '
        pages+='\n您的全部成绩如下:\n'
    gpa=cal(L1)#计算绩点
    T1.delete(0.0,END)
    T1.insert(1.0,"您的必修课绩点是%s"%gpa)
    T1.insert(2.0,pages)
root=Tk()
root.geometry("1000x700")
root.title("内蒙古大学JWC成绩爬取")
L1=Label(root,text="用户名")
L2=Label(root,text="密码")
L3=Label(root,text="作者:华理小司机@华东理工大学");L3.place(relx=0.8,rely=0.1);
B1=Button(root,text="确定",command=insert2)
E1=Entry(root)
E2=Entry(root,show='*')
T1=Text(root,width=800,height=1000)
L1.pack();E1.pack();L2.pack();E2.pack();B1.pack();T1.pack()
root.mainloop()

















  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
教学管理信息系统本着高起点高标准、既适应当前又考虑未来发展的原则,具有界面友好、易于掌握、操作简单、功能齐全、安全可靠、运用广泛等特点。主要功能模块包括系统维护、学籍管理、师资管理、教学计划管理、智能排课、考试管理、选课管理、成绩管理、实践管理、教学质量评价、毕业生管理、体育管理等。   主要特点如下:   1. 智能化的资源调配。它使学校教学资源得到优化,教师、教室、实验室、时间等的高效调配和合理利用,解决了学校资源紧缺、多校区、院系多级管理状况下排课、排实验室、排考场难等问题。   2. 周全的软件设计。随着学分制的教学改革,国内少数高校已试行了完全学分制,大部分高校正在由传统的学年制向学分制过渡,传统的教学管理软件已无法适应这一转变,本系统在设计时考虑了学年制、学年学分制、学分制以及过渡时期等不同阶段教学管理软件衔接的需求。   3. 规范化的教学资源管理。系统严格遵循教育部颁发的学籍学历规范和有关信息标准,课程代码、教师代码、学号等的编码规范高校管理,避免代码的重复等不合理现象的发生。   4. 学分制管理思想的体现。本系统较好地体现了学分管理的基本思想: (1)管理思想、理念上:学分制管理充分体现以人为本,以学生为中心,提高学生学习的自由化和个性化,学生可以自主选课程、自主选专业、自主选学习进程(上课时间)、自主选主讲教师。 (2)教学管理上:学分制管理以教学过程为主线管理,淡化行政班,在强化专业学生共性的基础上重视学生的个性化培养。 (3)学籍管理上:学分制的学籍管理关心获得学分或修读的课程,学生可以多次修读相同或不同的课程。 (4)收费管理上:学分制实现按学分收费为主。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值