更新机器人系列(学习通课表查询模块)

1首先是自己学校学习通支持课表查询

这是我的课表,学习通网页版可以查到,得到课表的思路

1.我们要找到学习通课表的api接口

2.利用axios请求拿到数据

3.展示数据

2登陆学习通

我们F12打开开发者工具

切换第三周课表,可以看到

我们可以去其他浏览器去访问一下

发现需要登录,因此请求这个接口是要携带cookie

我们去访问登录接口

const axios = require("axios")
const {writeFileSync, readFileSync} = require("fs");
const sendMessage = require("./send")
const config = require("./config")
let cookie = []
let str = "", str1 = ""

//获取cookie
async function getCookie() {
    const res = await axios({
        method: "get",
        url: "https://passport2.chaoxing.com/api/login",
        params: {
            name: ,//账号
            pwd: "" //密码
        },
        withCredentials: true,
        headers: {
            'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36',
            'Accept-Language': ' zh-CN,zh;q=0.9',
            'Accept-Encoding': ' gzip, deflate',
            'X-Requested-With': 'XMLHttpRequest',
        }
    })

    if (res.status === 200) {
        for (let i of res.headers["set-cookie"]) {
            cookie.push(i.slice(0, i.indexOf(";")))//处理cookie,
        }
    }
    console.log(cookie)
}

得到的cookie

然后请求http://kb.chaoxing.com/pc/curriculum/getMyLessons?week=2接口(需要携带week,week为第几周,需要在请求中携带),我们把数据写入json文件中

async function getclass(cookie) {

    try {
        const {data: res} = await axios({
            method: "get",
            url: "https://kb.chaoxing.com/pc/curriculum/getMyLessons",
            params: {
                week:2
            },
            withCredentials: true,
            headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
                'Accept-Language': 'zh-CN,zh;q=0.9',
                Cookie: cookie
            },
        })
        console.log(res.data)
        writeFileSync("chet.json", JSON.stringify(res.data.lessonArray))
        k = res.data.lessonArray.sort((a, b) => {
            return a.dayOfWeek - b.dayOfWeek
        })
        // console.log(k)
        k.forEach(i => {
            str += "周[" + i.dayOfWeek + "]" + "课程[" + i.name + "]" + "节次[" + i.beginNumber + "-" + (i.beginNumber + 1) + "]" + "教室[" + i.location + "]" + "任课教师[" + i.teacherName + "]" + "\n"
             console.log(str += "周[" + i.dayOfWeek + "]" + "课程[" + i.name + "]" + "节次[" + i.beginNumber + "-" + (i.beginNumber + 1) + "]" + "教室[" + i.location + "]" + "任课教师[" + i.teacherName + "]" + "\n")
        })
        console.log(str)

    } catch (e) {
    }
}

好的,我们已经成功拿到数据了,我们发现返回的数据在 lessonArray中,

处理课表数据结构

async function getclass(cookie) {

    try {
        const {data: res} = await axios({
            method: "get",
            url: "https://kb.chaoxing.com/pc/curriculum/getMyLessons",
            params: {
                week:2
            },
            withCredentials: true,
            headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
                'Accept-Language': 'zh-CN,zh;q=0.9',
                Cookie: cookie
            },
        })
        console.log(res.data)
        writeFileSync("chet.json", JSON.stringify(res.data.lessonArray))
        k = res.data.lessonArray.sort((a, b) => {
            return a.dayOfWeek - b.dayOfWeek
        })
        // console.log(k)
        k.forEach(i => {
            str += "周[" + i.dayOfWeek + "]" + "课程[" + i.name + "]" + "节次[" + i.beginNumber + "-" + (i.beginNumber + 1) + "]" + "教室[" + i.location + "]" + "任课教师[" + i.teacherName + "]" + "\n"
             console.log(str += "周[" + i.dayOfWeek + "]" + "课程[" + i.name + "]" + "节次[" + i.beginNumber + "-" + (i.beginNumber + 1) + "]" + "教室[" + i.location + "]" + "任课教师[" + i.teacherName + "]" + "\n")
        })
        console.log(str)

    } catch (e) {
    }
}

然后调用发消息模块发送课表

 await sendMessage.SendMessage(types, str, id)

代码已经开源在github

ehbcifnfn/qqbat: 基于开发的go-cqhttp机器人,可推送学习通课表,可聊天,查看天气,推送视频等功能 (github.com)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
协作机器人开发学习App是一项有潜力的技术,可以为用户提供与机器人协作学习的机会。这种App将利用协作机器人与用户进行互动和合作,以提高学习效果和用户体验。 首先,协作机器人可以辅助用户进行学习任务。它们可以根据用户的需求和学习目标,提供个性化的学习内容和指导。协作机器人可以过语音交互、图像识别等功能,帮助用户解答问题,激发学习兴趣,并给出有效的学习建议。 其次,协作机器人可以过模拟和实践,帮助用户巩固和应用所学知识。例如,在学习编程时,机器人可以提供虚拟环境和任务,让用户亲自动手实践,从而更好地掌握编程技能。此外,机器人还可以与用户进行合作项目,共同解决实际问题,培养用户的团队合作意识和实际应用能力。 另外,协作机器人开发学习App还可以提供学习进度追踪和评估的功能。机器人可以记录用户学习的时间、学习内容和学习效果,为用户提供个性化的学习建议和反馈。过分析学习数据,机器人可以根据用户的学习情况调整学习计划,提供针对性的学习资源,促进用户的个性化学习发展。 综上所述,协作机器人开发学习App有助于提升用户的学习效果和学习体验。过与机器人的互动和合作,用户可以获得个性化的学习指导,巩固知识,并培养实际应用能力。此外,学习进度追踪和评估功能可以帮助用户了解自己的学习情况,调整学习计划,实现个性化学习发展。未来,随着技术的不断进步和应用的推广,协作机器人开发学习App将发挥更大的作用,为用户提供更优质的学习体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值