new-school-sdk icon indicating copy to clipboard operation
new-school-sdk copied to clipboard

👋 校园教务系统爬虫接口,新版正方教务系统 SDK for Python(新正方教务系统API),支持多种登录方式,自动识别验证码(包含两种验证码的处理)

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

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

Downloads python3 license stars forks PyPI Version

在线文档

支持的登录/验证码方式

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

测试环境

  • Python == 3.8
  • 默认验证码识别方式: 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

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 地址配置

相关项目

  • 新版正方教务系统: https://github.com/Farmer-chong/new-school-sdk
  • 旧版正方教务系统: https://github.com/dairoot/school-api
  • SDK的Flask扩展: https://github.com/Farmer-chong/flask-school