首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
拉勾
V2EX  ›  分享创造

开源一个 正方教务系统 对接模块 School-Api

  •  2
     
  •   dairoot · 58 天前 · 2777 次点击
    这是一个创建于 58 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    大二接手师兄编写的校园微信公众号,那时候奕报告(校园服务 app )刚好在对接我们学校,可以提前查成绩,于是就去抓包分析奕报告,第一次敲代码的我,就这样子✨bulingbuling✨的上线了我的第一个 bug 多多的成绩查询功能(后来因提前公布成绩的原因,被抓去喝茶了)。

    以上就是我的入坑经历,后来随着项目功能越来越多,可扩展性也就越来越差,存在很多隐藏问题,debug 超麻烦!!!。于是就把正方系统的请求功能重写了,封装成一个独立模块。web 服务不再需要考虑教务系统的请求问题,也方便了公众号的后续开发(如:多校接入)。

    GitHub: https://github.com/dairoot/school-api

    模块安装

    $ pip install School-Api
    

    主要功能

    • 成绩查询 (学生 /部门)
    • 课表查询 (学生 /教师)
    • 教学场地课表(部门)
    • 用户信息查询(学生 /教师)

    技术支持

    使用示例 详细文档

    # -*- coding: utf-8 -*-
    
    from school_api import SchoolClient
    
    # 先实例化一个学校,再实例化用户
    school = SchoolClient(url='http://210.38.137.126:8016')
    student = school.user_login('2014xxxx', 'xxxx')
    schedule_data = student.get_schedule()
    print(schedule_data)
    

    课表数据格式

    课表

    微信公众号功能预览:源码

    wechat

    欢迎 star & fork GitHub: https://github.com/dairoot/school-api

    第 1 条附言  ·  58 天前
    仅支持这类教务系统网站
    测试地址: http://server.dairoot.cn
    29 回复  |  直到 2019-01-29 12:46:09 +08:00
        1
    77600753   58 天前
    这个不错,谢谢楼主分享
        2
    dairoot   58 天前
    @77600753 感谢支持哈
        3
    bkmi   58 天前 via Android
    东西不错,预感楼主还要再喝一次茶
        4
    dairoot   58 天前
    @bkmi 不需要我去喝茶,有别人专业代喝的😂
        5
    Daath   58 天前 via Android
    看到这个课程,牛逼。。物联网,云计算
        6
    steveway   58 天前 via Android
    奕报告似乎不是用的用户接口?
    可以直接获得所有人的排名
        7
    superlks   58 天前 via iPhone
    去年还是这样的教务系统,今年正方似乎重构了教务系统,ui 全变了,接口不清楚变没变,因为关注的不多,之前倒是自己搞过学校网站
        8
    jimages   58 天前
    我们自己做了一个,也是抓取正方教务系统的课表,成绩,考试安排和个人信息,我自己测试了一下,抓完所有数据(包括所有学期,需要 5s,使用了多线程)楼主这个需要多少时间啊?我感觉似乎没有使用多线程来加速
        9
    iSk2yroot   58 天前
    最近也正好在鼓捣这个,可以学习下楼主的代码 ,感谢分享
        10
    stillwaiting   58 天前 via iPhone
    10 年前我也写过,查成绩,主要为了抢选课...
    快 10 年了界面也没变过嘛
        11
    dairoot   58 天前 via Android
    @jimages 我只是提供请求的方法,多线程,队列什么的写在外层接口,比如我们外层就是用 celery 来调用的了
        12
    dairoot   58 天前 via Android
    @stillwaiting 哇,十年前,我们主要的干需是每天的课表查询和一学期一次的成绩查询
        13
    alvin666   58 天前 via Android
    代喝茶
    这么厉害的吗
        14
    huangdayu   58 天前 via Android
    如果我还在校也许还可以搞一波,不过也感谢楼主的分享
        15
    dairoot   58 天前
    @huangdayu 哈哈感谢支持,多校兼容还是个坑,还在填补中
        16
    glaucus   58 天前 via iPhone
    验证码如何处理的?
        17
    whi147   58 天前 via Android
    @Daath 我上学的时候也是这个专业,主要还是传感器、单片机开发
        18
    dairoot   58 天前
    @glaucus 加了验证码识别
        19
    glaucus   58 天前 via iPhone
    @dairoot 不错哦,我之前也做过我们学校的 APP,后面因为验证码没做成适配其他学校的通用框架
        20
    dairoot   58 天前 via Android
    @glaucus 还在适配中,太多格式不一致了
        21
    sevenQu   58 天前
    我们学校好像升级了,不是方正了
        22
    Sanko   58 天前 via Android
    去年我也在维护我们学校的查成绩查课表这一块也是 python,不过网络中心不让我们爬,今年换腾讯微校了
        23
    jimages   57 天前
    @dairoot 哦...我们这边用的 rabbit....qaq
        24
    zhengjian   57 天前
    微信公众号课表卡片是模版消息吗?分割线怎么做到的呀
        25
    dairoot   57 天前 via Android
    @zhengjian 那是图文接口,现在不行了,微信限制了只能主动发一条
        26
    focuxin   57 天前 via Android
    顶一个楼主,不错
        27
    zhouyut001   56 天前
    接口 3 个都不行🤔
        28
    ninestep   56 天前
    方正教务系统~~~五个登陆页面,第四个第五个不需要验证码,当年选课的时候写了一个脚本成功帮助宿舍六口子选上了,可惜没保存,没给学弟学妹留点福利,要不学校到现在都流传我的名了
        29
    dairoot   56 天前 via Android
    @zhouyut001 我今晚处理下
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2699 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 12:36 · PVG 20:36 · LAX 05:36 · JFK 08:36
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1