Skip to main content

zf School SDK for Python

Project description

新版正方系统 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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zf_school_sdk-1.8.1-py3-none-any.whl (38.0 MB view details)

Uploaded Python 3

File details

Details for the file zf_school_sdk-1.8.1-py3-none-any.whl.

File metadata

  • Download URL: zf_school_sdk-1.8.1-py3-none-any.whl
  • Upload date:
  • Size: 38.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for zf_school_sdk-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d7db8976f04f58a39718124132fa0b025439ba4c6545f2099661e343f5082c97
MD5 b3f55922fbb2ac10ecd76c342b163afe
BLAKE2b-256 7860bafec4cb83fc417c997d42050e2fd36b4b3e108e204c55b9ac1f9d33db89

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page