新版正方系统 Python SDK (支持滑块验证码与常规验证码)
背景
前年发现学校更新了教务系统,导致现有的基于旧版正方系统的课表小程序无法使用了。
之前曾在GitHub上看到过本校师兄开发的school-api一个基于旧版正方的python SDK,但新版无法使用。因此花了两天时间研究了下新版正方的登录,以上便是这个项目的起源。
项目Github地址: github.com/Farmer-chon…
测试环境
- Python == 3.8
- 默认验证码识别方式: CPU
Usage
$ pip install school-sdk
# or
$ pip install zf-school-sdk
from school_sdk import SchoolClient
# 先实例化一个学校,再实例化用户
school = SchoolClient("172.16.254.1")
user:UserClient = school.user_login("2018xxxxx", "xxxxxxxx")
course = user.get_schedule(year=2020, term=2)
print(course)
使用示例参见 examples
Api Function
| 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 |
School-SDK Options
| 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 | 地址配置 |
相关项目
- 新版正方教务系统: github.com/Farmer-chon…
- 旧版正方教务系统: github.com/dairoot/sch…
- SDK的Flask扩展: github.com/Farmer-chon…