新版正方系统 Python SDK。(支持自动识别、处理滑块验证码与常规验证码,如果觉得还不错,给个小星星趴~⭐)
这也许是全网唯一一个自动处理新版教务系统验证码的 SDK :p
- 帐号密码登录
- 滑块验证码登录
- 图形验证码登录
- cookie 登录(用于扫码登录、OIDC 等场景)
- Python == 3.8
- 默认验证码识别方式: CPU
$ pip install school-sdk
# or
$ pip install zf-school-sdk
如果机器内存不足,可以使用 pip
--no-cache-dir
选项来安装 e.g:pip --no-cache-dir install school-sdk
from school_sdk import SchoolClient
from school_sdk.client import UserClient
# 先实例化一个学校,再实例化用户
school = SchoolClient("172.16.254.1")
user:UserClient = school.user_login("2018xxxxx", "xxxxxxxx")
# 获取 2020 学年第二学期的课程
course = user.get_schedule(year=2020, term=2)
print(course)
使用示例参见 examples
Api | Description | Argument |
---|---|---|
user_login | 登陆函数 | account, password |
get_schedule | 课表查询 | year, term |
get_score | 成绩查询 | year, term |
get_info | 获取个人信息 | None |
refresh_info | 刷新个人信息 | None |
check_session | 检查session并其失效后重登录 | None |
Option | Default | Description |
---|---|---|
host | 不存在默认值 | 教务系统地址(必填 ) |
port | 80 | 端口号 |
ssl | False | 教务系统是否使用https |
name | None | 学校名称 |
exist_verify | False | 是否存在验证码 |
captcha_type | captcha | 验证码类型(常规 或 滑块) |
retry | 10 | 登录重试次数 |
lan_host | None | 内网地址(暂不可用) |
lan_port | 80 | 内网地址端口(暂不可用) |
timeout | 10 | 全局请求延时 |
url_endpoints | None | 地址配置 |
帮教务系统做负载均衡:https://github.com/FarmerChillax/school-load-balance
(如果你们学校教务系统抢课经常崩溃,可以考虑看看这个 repo)