一个和电子科大有关的模块

uestc的Python项目详细描述


一个电子科大的模块

涉及登录,查分,抢课等功能

免责声明

  1. 本项目提供的API均为UESTC教务系统提供的,不涉及对任何 UESTC 教务系统网络及其任何相关子站的直接网络攻击,仅通过较高频率的模拟操作达到目的。
  2. 本项目需要使用使用者的信息门户账户名及密码,但是保证不进行除在本机获取 cookies 之外的用途。同时本项目不承担任何形式由于使用者操作失误导致的信息门户账户名及密码泄露,并由此直接或间接导致的、无限的损失。
  3. 若因为使用者操作频次过高直接或间接导致的对教务系统的过大压力,由使用者承担其无限责任。使用者的 cookies 和账号信息会被教务系统记录,本项目作者不因此直接或间接承担任何责任。本项目可以保证默认参数不会引发本条所述的相关责任,但同时此保证不对使用者提供责任豁免条件。
  4. 若因为其他问题导致不良后果,参考中华人民共和国网络安全法
  5. 本项目的其他副本(包括但不仅限于离线储存、fork 项目)在保持代码完全相同情况下,享受和本免责声明相同的免责条款;反之不然。因不当储存、复制和扩散导致的、无限的风险与责任由相关操作者承担,与本项目无关。

安装

pip3installuestc

文档

uestc.exceptions

异常

uestc.login

登录模块

提供了登陆uestc的接口

登录失败会抛出异常

成功则返回一个request模块的session

>>>uestc.login('20160601*****','123456')Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>File"/mnt/c/Users/plusl/code/uestc/uestc/login.py",line48,inloginraiseLoginError('密码错误')uestc.exceptions.LoginError:密码错误>>>uestc.login('201606*********','******')<requests.sessions.Sessionobjectat0x7f2a8e83eb00>

uestc.catch_course

抢课模块

catch_course

抢课

例:

>>>importuestc>>>session=uestc.login('201606*********','******')>>>uestc.catch_course.catch_course(session,[998],[283884])>>>uestc.catch_course.catch_course(session,[998],[283884])^C{283884:{998:1}}

choose_course

选课并返回结果

getopen entrance

获取选课通道

changeclass cash

修改选中的课程的权重

getchoose class_list

获取选中的课程的列表

getentrance student_count

获取当前选课的学生数量

getcourse data

获取课程信息,包含自己投入的权重

getplatform cash

获取各个平台剩余的权重

uestc.query

查询模块

getnow semesterid

获取当前学期id

getsemesterid data

获取所有学期id的数据 返回一个学期id的list

例:

>>>uestc.query.get_semesterid_data(session){'2008-2009-1':21,'2008-2009-2':22,'2009-2010-1':19,'2009-2010-2':20,'2010-2011-1':17,'2010-2011-2':18,'2011-2012-1':15,'2011-2012-2':16,'2012-2013-1':13,'2012-2013-2':14,'2013-2014-1':1,'2013-2014-2':2,'2014-2015-1':43,'2014-2015-2':63,'2015-2016-1':84,'2015-2016-2':103,'2016-2017-1':123,'2016-2017-2':143,'2017-2018-1':163}

get_score

获取指定学期的分数

会得到course list

例:

In[5]:uestc.query.get_score(s,'2017-2018-2')Out[5]:[Course(semester=2017-20182,code=E0805130,id=E0805130.03,name=计算机网络,type=专业核心课程,credit=3,default_score=92,resit_score=--,score=92,point=4),Course(semester=2017-20182,code=L0801910,id=L0801910.07,name=综合课程设计,type=实践类核心课程,credit=1,default_score=87,resit_score=--,score=87,point=4),Course(semester=2017-20182,code=E0800740,id=E0800740.03,name=数字逻辑,type=学科基础课程,credit=4,default_score=76,resit_score=--,score=76,point=3.1),Course(semester=2017-20182,code=K0802210,id=K0802210.07,name=数字逻辑综合实验,type=实践类核心课程,credit=1,default_score=80,resit_score=--,score=80,point=3.5),Course(semester=2017-20182,code=B2018410,id=B2018410.05,name=器械健身D,type=大学体育IV,credit=1,default_score=94,resit_score=--,score=94,point=4),Course(semester=2017-20182,code=A7304010,id=A7304010.02,name=成电讲坛,type=核心通识课程,credit=1,default_score=通过,resit_score=--,score=通过,point=4),Course(semester=2017-20182,code=B1701620,id=B1701620.01,name=科技英语,type=C类专门用途类,credit=2,default_score=61,resit_score=--,score=61,point=1.6),Course(semester=2017-20182,code=G0801530,id=G0801530.01,name=数据库原理及应用,type=专业核心课程,credit=3,default_score=88,resit_score=--,score=88,point=4),Course(semester=2017-20182,code=A9905220,id=A9905220.02,name=电影鉴赏,type=核心通识课程,credit=2,default_score=82,resit_score=--,score=82,point=3.7)]

sample

sample目录下为样例程序

query_score.py

可以查询分数,过滤课程并自动计算加权平均分

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java 401在API URL上带有声明性Http客户端,并带有@Secured(SecurityRule.IS_ANONYMOUS)注释   java如何在Android中创建计时器?   Java8WebStart安全弹出窗口   java会通过以下两种方式导致堆空间耗尽吗?   java项目调度GA:染色体的高效数据结构   java Apache POI:如何在Excel文件中插入列   java在JRE系统库中每个jar扮演什么角色   java如何在抽象类中执行@mock(不是注入mock)   java如何使用opensearch和Lucene发送搜索查询?   java在ApachePOI中处理空列   java广播接收器未接收到目标   java错误ELF类:ELF类64(可能原因:体系结构字宽不匹配)   java调用Web服务(SSL)时出错   用于iot集线器设备固件更新的java Rest API   通过xslt将xml转换为文本文件时引发java异常   Java linux打印问题   Java XML转换器重复行   java从另一个类的方法将数组导入mainActivity类   多线程选择与Java交互的线程   我想在java程序中打印以下格式的文件: