Skip to main content

新版正方系统 Python SDK。(支持自动识别、处理滑块验证码与常规验证码,如果觉得还不错,给个小星星趴~⭐)

这是全网唯一一个自动处理验证码的新版教务系统 SDK :p

并且本项目有完善的 type hints

Downloads python3 license stars forks PyPI Version

📢📢📢 本项目理论上支持教务系统所有功能,兼容所有学校
使用过程中如有遇到本 SDK 暂不支持的功能,请使用 proxy_request

在线文档

Roadmap

支持的登录/验证码方式

  • 帐号密码登录
  • 滑块验证码登录
  • 图形验证码登录
  • cookie 登录(用于扫码登录、OIDC 等场景)

测试环境

  • 3.8 <= Python <= 3.13
  • 默认验证码识别方式(推理): CPU

Usage

$ pip install school-sdk
# or
$ pip install zf-school-sdk

如果机器内存不足,可以使用 pip --no-cache-dir 选项来安装 e.g. pip --no-cache-dir install school-sdk

或者指定构建路径,e.g. pip install -b ~/pip_build_dir 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 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
proxy_request 补充 sdk 未实现的业务功能,以支持各种登录后的教务系统操作 method, url_or_endpoint, **kwargs

School-SDK Options

Option Default Description
host 不存在默认值 教务系统地址(必填)
port 80 端口号
ssl False 教务系统是否使用https
name None 学校名称
exist_verify False 是否存在验证码
captcha_type captcha 验证码类型,枚举类型(kaptcha: 常规 或 captcha: 滑块)
retry 10 登录重试次数
lan_host None 内网地址(暂不可用)
lan_port 80 内网地址端口(暂不可用)
timeout 10 全局请求延时
url_endpoints None 地址配置

相关项目

帮教务系统做负载均衡:https://github.com/FarmerChillax/school-load-balance

(如果你们学校教务系统抢课经常崩溃,可以考虑看看这个 repo)

Metadata

Release files for school-sdk 1.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for school-sdk 1.8.1
File Interpreter ABI Platform
school_sdk-1.8.1-py3-none-any.whl Python 3 none any Details

Release files / school_sdk-1.8.1-py3-none-any.whl

Download URL school_sdk-1.8.1-py3-none-any.whl
Size 38.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5d3bd376bcb54e448896c79d3699547f2b95787fa7318811561d0fbed1613151
BLAKE2b-256 checksum
How to use checksums
1931e240ac076ee5e0493b2998705ebca93d25df4a1c18c5024fe9e47b549be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.23

Release history Release notifications | RSS feed

This release

1.8.1 This release

1 release file

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

1 release file

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

1 release file

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page