前情回顾:

之前的一次爬教务处的成功实践里面记录了一些在爬教务处时需要注意的点。并PO出了一份Beego写的教务处的API版本.但是由于没有前端配合,加上自己懒得写,所以大概就这样烂尾了。。。了。。。

突发奇想:

在确定了实习工作之后,由于也不是太忙的原因,所以,在某天某个契机(由于课程格子for Android的自启和后台驻留太频繁,一怒之下就卸了,然而会学校才发现确实需要查课程的终端)的引导下,开了cmd_zafu这个坑,说来也是巧合,自从那段时间喜欢上把啥都放在Terminal之后,发现这样做确实会提升不少效率,大概是我的审美经常被机油们吐槽的缘故,所以,才会发现一片新大陆啊,作为一头后端猿,本身也不是很在意前端的渲染…(反正一定要写就是Bootstrap)

一些尝试

  • 基本功能(已经实现)
  • 用golang的Opencv库 做图像处理,再用gosseract直接识别出验证码提交。
  • 添加Goroutine,多线程请求教务处。 > 可能在实现免验证码之后会继续鸽一段时间…..

食用步骤:

  • 首先在cmd_zafu的Release页面下载对应自己平台(Win/Linux/macOS)的应用程序(我只编译了amd64的,这大概是主流PC机CPU架构,有需要其他架构的同学可以找我…)
  • 然后打开自己的Terminal(Linux:Ctrl+alt+t,Win:win+R),切换到下载的目录(e.g.:/scnace/)..
  • 输入命令./jwcconn -h查看使用帮助…. > 你需要 输入 你的学号(-u/–username)和你的密码(-p/–password),还有你想查询的种类(-t/–type:score OR course OR exam)

  • 然后你会在本目录接收到一张验证码的图(code.gif),输入验证码上的字母/数字,换图也可以按0,重新发起Request请求,接收到新的验证码。

  • Terminal输出你想知道的内容

综上,其实是很简单,很流畅的一个流程。

方便使用

  • 我经常使用的命令 会给他设为全局命令 并加上alias 这样使用效率会高出很多 就免去了多余的cd步骤 …

    • macOS/Linux等类Unix用户:可以把jwcconn放置(mv)到/usr/bin目录下

    • Windows用户:可以把jwcconn放到Path下(设置环境变量),具体可以查看这篇java环境变量的设置 ,大同小异,(e.g. jwcconn放置在了C:\Users\scnace\jwcconn 那么设置的时候只需要在Path下 新增这个路径就可以了)

其实会bash的人 不用看都心知肚明了~ 另外, 在哪个目录下运行 验证码就会出现在哪里哦~

FAQ

  • Q: jwcconn会不会摄取我的隐私呢?

    A: 放心,jwcconn 不涉及任何数据库存储的操作,只涉及到与JWC的通信。另外,我虽然不是个好人,但是也不会这么下流啊….

  • Q:所以这东西设计的目的是什么?

    A:如上所说,这东西适合 不想用(不信任)移动端的闭源APP,并且频繁使用PC的人群 (其实就是我实习空闲之余,撸出来自用的小工具,分享给大家,如果也迎合了你们的需求,那我也很开心呀 :} )

  • Q:如果我有 使用/设计/情感 问题(bug,建议)要怎么联系你呢?

    A:可以加我微信号:scbizu 或者给我发邮件:scbizu@gmail.com.如果工作不是很忙,我一定会第一时间回复的~

涉及到的Golang第三方包:

  • CLI:用来实现主要的命令行操作框架.
  • color:用来实现Terminal里面的字体颜色渲染.
  • goquery:用来辅助正则进行页面元素的分析
  • mahonia:用来进行utf-8和GBK的互转.
  • iconv:需要GCC依赖,故用mahonia代替

以上….