一个和电子科大有关的模块
Project description
一个电子科大的模块
涉及登录,查分,抢课等功能
免责声明
本项目提供的API均为UESTC教务系统提供的,不涉及对任何 UESTC 教务系统网络及其任何相关子站的直接网络攻击,仅通过较高频率的模拟操作达到目的。
本项目需要使用使用者的信息门户账户名及密码,但是保证不进行除在本机获取 cookies 之外的用途。同时本项目不承担任何形式由于使用者操作失误导致的信息门户账户名及密码泄露,并由此直接或间接导致的、无限的损失。
若因为使用者操作频次过高直接或间接导致的对教务系统的过大压力,由使用者承担其无限责任。使用者的 cookies 和账号信息会被教务系统记录,本项目作者不因此直接或间接承担任何责任。本项目可以保证默认参数不会引发本条所述的相关责任,但同时此保证不对使用者提供责任豁免条件。
若因为其他问题导致不良后果,参考中华人民共和国网络安全法。
本项目的其他副本(包括但不仅限于离线储存、fork 项目)在保持代码完全相同情况下,享受和本免责声明相同的免责条款;反之不然。因不当储存、复制和扩散导致的、无限的风险与责任由相关操作者承担,与本项目无关。
安装
pip3 install uestc
文档
uestc.exceptions
异常
uestc.login
登录模块
提供了登陆uestc的接口
登录失败会抛出异常
成功则返回一个request模块的session
>>> uestc.login('20160601*****','123456')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/mnt/c/Users/plusl/code/uestc/uestc/login.py", line 48, in login
raise LoginError('密码错误')
uestc.exceptions.LoginError: 密码错误
>>> uestc.login('201606*********','******')
<requests.sessions.Session object at 0x7f2a8e83eb00>
uestc.catch_course
抢课模块
catch_course
抢课
例:
>>> import uestc
>>> 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
选课并返回结果
getopenentrance
获取选课通道
changeclasscash
修改选中的课程的权重
getchooseclass_list
获取选中的课程的列表
getentrancestudent_count
获取当前选课的学生数量
getcoursedata
获取课程信息,包含自己投入的权重
getplatformcash
获取各个平台剩余的权重
uestc.query
查询模块
getnowsemesterid
获取当前学期id
getsemesteriddata
获取所有学期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
可以查询分数,过滤课程并自动计算加权平均分
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.