⭐新正方教务管理系统的爬虫webApi-Django(带后台)🔧用以开发校园APP/小程序
登录、消息及成绩和课程部分API基于NeroAsmarr/zfnew【2020.2.16】
目前项目部署在“西院助手”微信/QQ小程序中作为API
求⭐⭐⭐⭐⭐(跪
- 个人信息
- 停补换课消息
- 课程修读情况(学业详情)
- 成绩
- 课表
- 查询已选课程
- 选课
- 退课
- 录取查询(仅本校)
- 空教室查询
- 响应式后台管理数据库
- 对每天的每个请求生成日志文件
- 避免教务系统无法访问,存储部分请求数据到服务器,可选参数刷新
- 查询各院/专业/班级加入情况
- 查询GPA在专业与班级的排名
- 点击JSON说明.MD访问返回的JSON数据键值名称以及具体内容说明
- 为了方便管理和请求,不采用传递cookies的方法,而是将cookies存储到数据库让服务器请求
- 须先通过pinfo新增学生后才能访问其它API
- 使用simpleui后台,自定义在settings.py以及info/admin.py和info/models.py
- 选课API可能并不通用,这里仅提供思路,具体请参照自己学校情况
- 代码中有关于开发者本校的录取查询(recruitApp),不通用,请自行编写替换或删除
- 使用MySQL数据库,请保证MySQL版本为5.6及以上
- config.json中包含了http代理、官网、Server酱、上下课时间配置
- ServerChan为none时,不使用Server酱,而配置时须填上完整url,末尾以'.send?'结尾
- proxy为none时,不使用代理
- nowterm本来想写成自动判断的,但想到第一个期末成绩出来的时间不定,所以还是用了手动配置,'3'为上学期,'12'为下学期
个人信息(必须,用以登录):/info/pinfo
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
停补换课消息:/info/message
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
课程修读情况(学业详情):/info/study
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
refresh | 否 | 填入'no'则读取缓存 |
成绩: /info/grade
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
year | 是 | 学年 |
term | 是 | 学期(1 or 2) |
refresh | 否 | 填入'no'则读取缓存 |
课表:/info/schedule
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
year | 是 | 学年 |
term | 是 | 学期(1 or 2) |
refresh | 否 | 填入'no'则读取缓存 |
查询各院/专业/班级加入情况:/info/joindetail 方法:GET
参数名 | 必选 | 说明 |
---|---|---|
type | 是 | college-二级学院,major-专业,class-班级 |
查询GPA在专业与班级的排名:/info/position(未实验) 方法:GET
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
已选课程:/choose/choosed
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
refresh | 否 | 填入'no'则读取缓存 |
板块课:/choose/bkk
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
bkk | 是 | 板块号(1 or 2) |
选课:/choose/choose
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
doId | 是 | 执行ID,精确到班级,从板块课API中可获取 |
kcId | 是 | 课程号,精确到课程,从板块课API中可获取,在其它API中字段名为"courseId" |
kklxdm | 是 | 精确到板块课页面,从板块课API中可获取,板块课1、2不同 |
退课:/choose/cancel
参数名 | 必选 | 说明 |
---|---|---|
xh | 是 | 学号 |
pswd | 是 | 密码 |
doId | 是 | 执行ID,精确到班级,从板块课API中可获取 |
kcId | 是 | 课程号,精确到课程,从板块课API中可获取,在其它API中字段名为"courseId" |
one·一个 每日文字:/one
※method : GET
录取查询(仅作者学校):/recruit/query
参数名 | 必选 | 说明 |
---|---|---|
identity | 是 | 考生号 or 身份证号 |
- 推荐使用uswgi+nginx,具体部署可移步百度
- 更改config.json中各项:参照上方Tips
- 请确保服务器或虚拟环境安装了Python3.6及以上版本
$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
- 开放8000端口
- 在settings.py中配置数据库信息
$ python manage.py makemigrations
$ python manage.py migrate
$ python manage.py createsuperuser
$ python manage.py runserver 0.0.0.0:8000
/admin
访问你服务器的IP地址:8000/xxx