超星学习通 | 超酷的学习方式 看课+答题姬 | 可自行配置题库

相关阅读

免责声明

以下教程仅用于个人研究、学习代码目的,为各位同学节省宝贵的学习时间,请勿用于商业用途。

Ps: 本项目不提供任何题库资源,有相关测试需求者请按照文档自行解决。

本项目仅供学习参考使用,请在下载部署后24小时内删除。

由于使用本项目不当所造成的挂科或不良学习记录作者一概不负责。

杂谈

前一阵子在B站上看到热心网友分享了一个体验非常良好的工具,非常符合目前热心网友们上网课的习惯,课程进度由脚本来完成,答题可以在侧面显示,如果有题库可以调用题库,没有题库也可以自己来完成!

但是很多热心网友不太会用Pycharm,因此,我们帮热心网友进行了打包

打包版使用

2023年5月20日

2022年12月20日

使用教程

打包版下载完成后,您可以直接运行右键以管理员身份运行超星答题姬.exe

先输入手机号,然后输入密码(输入密码时不会显示********,确认输入完成后回车即可)

图片[1]-超星学习通 | 超酷的学习方式 看课+答题姬 | 可自行配置题库-FancyPig's blog

之后可以选择课程,填序号即可,譬如我们这里选择0即可

图片[2]-超星学习通 | 超酷的学习方式 看课+答题姬 | 可自行配置题库-FancyPig's blog

如果课程有题目会在左侧显示,大家也可以自行去搜索下对应的题目

配置文件

当然聪明的你一定发现了这里还有config.yml文件,该文件通常用于细节配置

# 基本配置

# 是否开启多会话模式
multiSession: true
# 是否开启姓名手机号打码
maskAcc: true
# TUI 最大显示高度
tUIMaxHeight: 25
# 会话存档路径
sessionPath: "session/"
# 日志文件路径
logPath: "logs/"

# --------------------

# 任务执行器配置
# 视频
video:
  # 使能
  enable: true  
  # 完成等待时间
  wait: 15
  # 倍速
  speed: 1.0
  # 视频播放汇报率 (没事别改)
  report_rate: 58
  

# 试题
exam:
  # 使能
  enable: true
  # 完成等待时间
  wait: 15
  # TODO: 是否匹配失败自动保存
  # fail_save: true

# 文档
document:
  # 使能
  enable: true
  # 完成等待时间
  wait: 15

# --------------------

# 搜索器选择 (可同时使用多个搜索器, 以 yaml 语法中 list 格式添加, `type`字段决定搜索器类型)
# 可用的搜索器有: restApiSearcher jsonFileSearcher sqliteSearcher enncySearcher
searchers:
  # 本地 JSON 数据库搜索器 (key为题, value为答案)
  #- type: jsonFileSearcher
  #  file_path: "questions.json"  # 数据库文件路径

  # REST API 在线搜题
  # - type: restApiSearcher
  #   url: "http://127.0.0.1:88/v1/cx"  # API url
  #   method: "POST"  # 请求方式
  #   req_field: "question"  # 请求参数
  #   headers:  # 自定义请求头(可选) 使用 yaml 的 k-v 语法填写
  #     # eg: Authorization: 'xxx'
  #   ext_params: # 自定义扩展请求参数(可选) 使用 yaml 的 k-v 语法填写
  #     # eg: Token: 'xxx'
  #   rsp_field: "$.data"  # 返回参数 使用 JSONPath 语法进行查询
  
  # 本地 sqlite 数据库搜索器
  # - type: sqliteSearcher
  #   file_path: "questions.db"  # 数据库文件路径
  #   table: "question"  # 表名
  #   req_field: "question"  # 请求字段
  #   rsp_field: "answer"  # 返回字段

  # Enncy 题库搜索器,使用前请注册 https://tk.enncy.cn/
  # - type: enncySearcher
  #   token: "xxx"  # Enncy 题库 Token

  # 网课小工具(Go题)题库搜索器,使用前请获取Token https://cx.icodef.com/1-UserGuide/1-6-gettoken.html#%E8%8E%B7%E5%8F%96token
  # - type: cxSearcher
  #   token: "xxx"  # 网课小工具(Go题)题库 Token

譬如可以自行调整播放速度,默认是1.0倍

  speed: 1.0  # 播放速度

同时,你也可以选择完成任务后等待时间,譬如完成后等待15秒

  wait: 15  # 完成等待时间

如果你自己有题库,或者会搭建题库服务器,可以在搭建完成后,启用自动答题的功能

exam:
  enable: true  # 是否执行任务

以上配置默认是使用的网课小工具的题库

  # 网课小工具(Go题)题库搜索器,使用前请获取Token https://cx.icodef.com/1-UserGuide/1-6-gettoken.html#%E8%8E%B7%E5%8F%96token
   - type: cxSearcher
     token: ""  # 网课小工具(Go题)题库 Token

你会发现,你如果需要使用哪个,就将参数前的#去掉即可,#代表注释的意思

源码使用

源码使用一般非为以下几个步骤,首先需要安装poetry管理项目

pip install poetry

然后,使用poetry安装全部依赖

poetry install

安装完成后,运行项目即可

poetry run python main.py

题库创建及维护

自建题库

这里很多网友会比较感兴趣,如何去自建一个题库,这里你可以创建一个questions.json的文件

然后,用json的格式显示,问题及答案

{
  "国字的演变的过程告诉我们,国防就是国家的防务,国防与()是密不可分的": "国家"
}

如果有多个就用逗号隔开即可,我们这里举个例子,比如有2个题,就是下面这样

{
  "猪猪侠是什么": "学习网络安全的代号",
  "FancyPig's blog的网址是什么": "https://www.iculture.cc"
}

然后你就可以照猫画虎,去整理自己的json题库了,其实在整理的过程中,你也会对题目进行学习,这是一个很不错的方式,在整理完成后,我们就让机器自动匹配上面的题库为我们回答问题了!

自建接口

您也可以尝试使用下面的项目自己建一个接口

https://github.com/SocialSisterYi/xuexiaoyi-to-xuexitong-tampermonkey-proxy

利用第三方API

您也可以从网上找一些第三方的题库,譬如之前我看网上分享了一些免费的接口

answer-search-bank

请使用POST方法

https://api.answer.uu988.xyz:4545/answer/search

请求内容

{
  question: '新时期要注重选拔任用()、()、()、()、()的干部,对政治不合格的干部实行“一票否决”,已经在领导岗位的坚决调整。';
}

响应内容

 {
   errno: 0,
   message: "search success",
   data: {
    question: "新时期要注重选拔任用()、()、()、()、()的干部,对政治不合格的干部实行“一票否决”,已经在领导岗位的坚决调整。",
    answers: [
       "A",
       "B",
       "C",
       "D",
       "E"
    ],
    from: "https://www.yisouti.com/search"
   }
 }

hive-net.cn

可以支持超星,智慧树,知到,Welearn,四史,马原,毛概,大学mooc多个平台的

这里是直接GET请求

https://www.hive-net.cn/backend/wangke/search?token=free&question=我国的国体是

返回结果

{
    "code": 0,
    "data": {
        "total": 1,
        "reasonList": [
            {
                "id": 409583,
                "question": "我国的国体是",
                "reason": "人民民主专政",
                "type": 1,
                "options": "A:人民代表大会制度,B:人民民主专政,C:共产党领导的多党合作和政治协商制度,D:民族区域自治制度",
                "explanation": "无",
                "course": "中国大学MOOC慕课,中国大学MOOC慕课未分类",
                "tag": "毛概,多党合作,制度"
            }
        ],
        "tokenRemainTimes": 4995,
        "tokenExpireTime": "2030-01-01"
    }
}

全能搜题

使用GET请求

https://study.jszkk.com/api/open/seek?q=从哪一年开始,我国HIV感染者和艾滋病患者数出现了突飞猛进的增长,并逐年上升?(   )

获得题目答案

{
    "code": 200,
    "msg": "",
    "data": {
        "type": -1,
        "content": "从哪一年开始,我国HIV感染者和艾滋病患者数出现了突飞猛进的增长,并逐年上升?(   )",
        "answer": "2004",
        "created_at": "2021-12-24T08:31:38.000000Z",
        "updated_at": "2021-12-24T08:31:38.000000Z"
    }
}

但是上面的响应码不一定是code,也不一定是200,所以你可能还需要修改exam.py中的代码

付费题库

在config.yml中也提供了一个付费的题库,原则上这个有悖于消灭一切付费平台的理念😂

不过看评论区有热心网友问,我们也简单说下言溪题库如何对接,这里需要注意的是,你不使用的要用#注释掉,否则开启多个可能会导致程序无法正常运转。我们先进入言溪题库,将用户凭证复制下来

图片[3]-超星学习通 | 超酷的学习方式 看课+答题姬 | 可自行配置题库-FancyPig's blog

填入下面config.yml文件对应的token中

  # Enncy 题库搜索器,使用前请注册 https://tk.enncy.cn/
   - type: enncySearcher
     token: "填入你复制的内容"  # Enncy 题库 Token

然后运行即可,完整的config.yml如下

# 基本配置

# 是否开启多会话模式
multiSession: true
# 是否开启姓名手机号打码
maskAcc: true
# TUI 最大显示高度
tUIMaxHeight: 25
# 会话存档路径
sessionPath: "session/"
# 日志文件路径
logPath: "logs/"

# --------------------

# 任务执行器配置
# 视频
video:
  # 使能
  enable: true  
  # 完成等待时间
  wait: 15
  # 倍速
  speed: 1.0
  # 视频播放汇报率 (没事别改)
  report_rate: 58
  

# 试题
exam:
  # 使能
  enable: true
  # 完成等待时间
  wait: 15
  # TODO: 是否匹配失败自动保存
  # fail_save: true

# 文档
document:
  # 使能
  enable: true
  # 完成等待时间
  wait: 15

# --------------------

# 搜索器选择 (可同时使用多个搜索器, 以 yaml 语法中 list 格式添加, `type`字段决定搜索器类型)
# 可用的搜索器有: restApiSearcher jsonFileSearcher sqliteSearcher enncySearcher
searchers:
  # 本地 JSON 数据库搜索器 (key为题, value为答案)
  #- type: jsonFileSearcher
  #  file_path: "questions.json"  # 数据库文件路径

  # REST API 在线搜题
  # - type: restApiSearcher
  #   url: "http://127.0.0.1:88/v1/cx"  # API url
  #   method: "POST"  # 请求方式
  #   req_field: "question"  # 请求参数
  #   headers:  # 自定义请求头(可选) 使用 yaml 的 k-v 语法填写
  #     # eg: Authorization: 'xxx'
  #   ext_params: # 自定义扩展请求参数(可选) 使用 yaml 的 k-v 语法填写
  #     # eg: Token: 'xxx'
  #   rsp_field: "$.data"  # 返回参数 使用 JSONPath 语法进行查询
  
  # 本地 sqlite 数据库搜索器
  # - type: sqliteSearcher
  #   file_path: "questions.db"  # 数据库文件路径
  #   table: "question"  # 表名
  #   req_field: "question"  # 请求字段
  #   rsp_field: "answer"  # 返回字段

  # Enncy 题库搜索器,使用前请注册 https://tk.enncy.cn/
  # - type: enncySearcher
  #   token: "xxx"  # Enncy 题库 Token

  # 网课小工具(Go题)题库搜索器,使用前请获取Token https://cx.icodef.com/1-UserGuide/1-6-gettoken.html#%E8%8E%B7%E5%8F%96token
   - type: cxSearcher
     token: "xxx"  # 网课小工具(Go题)题库 Token

源码打包

如果您也想将上面的源码打包exe分享给好友,可以参考下面的教程

© 版权声明
THE END
喜欢就支持一下吧
点赞19赞赏 分享
评论 共73条

请登录后发表评论