锦城一键听课 ruby版

这几天 都一直在写这个程序 就是能锦城教育一键听课的 要把它实现出来
刚刚在接触ruby 就打算用ruby来试试看

Ox01
之前已经分析过了 锦城听课的过程也是知道的了 可以看一下 http://appleu0.sinaapp.com/?p=99
关键就是要把他模拟出来

一开始 我去研究那些是包里可以去掉的内容 什么的 其实是不对的 把访问的过程抓包下来 搞清页面访问的顺序之后 完全模拟就可以了

不用去构造最小的发包 因为这样子可能会造成 sso单点登陆 认证失败
除非是那种需要爆破 或者是 循环访问的
比如在最后一个包里 就是 获取了课程id 之后 去计时 那个包就可以去研究一下 哪些是需要的信息 哪些对于听课又没有影响 这样子就可以去除不必要的 以提高发包的效率
Ox02
主要是 用到了 ruby下 的net的http类 来访问网络 模拟登陆以及发包的过程

用ruby/tk库 来画界面 不过因为 tk的关系 没法转换为exe的可执行文件 将来还要再改写一下 改成用别的库写的 来生成可执行文件

中间的一些字符串处理、网页中提取id等是用到了正则表达式 ruby内建了正则表达式 是处理字符串的一大利器 要好好学学

界面画了一下 上图看看
登陆
选课
确认
完成

Ox03
最后是脚本的下载 是在ruby 1.9.2和2.0.0的环境下 测试过 提供个 下载的链接
rubyinstaller-1.9.2-p290.exe
rubyinstaller-2.0.0-p247.exe

然后在安装的时候要选择 tk 库
ruby/tk
脚本下载的链接
可能需要 修改每一个文件里的require到的自己下载的路径
比如你把脚本放到了C:/下面 把main.rb里的require ‘./web_post_trans’
改成require ‘C:/web_post_trans’
脚本下载的链接~一键听课ruby.rar

Ox04
运行时 如果.rb已经有了关联性 就可以直接双击运行 也可以用下面的命令行来运行
比方说你把文件放到了C:/
在cmd命令行下运行

cd C:\
rubyw main.rb

Ox05
中间也是遇到了很多的问题 最后还有一些问题没解决的 比如全局变量的使用 代码写得丑 还有 tk库 没法生成exe的问题
试过用ruby生成exe的 exerb、ocra、rubyscript2exe
一直因为tk库 的原因没有成功 想要要别的GUI库来重写一下界面 来生成 exe 用起来就直接运行就可以了 不用去安装ruby环境了
中间也是和冷总 交流了很多
冷总之前写的一个抢课的软件 里面也有更详细的分析
手把手教你做个抢课达人!

3 条评论

  1. Katherine 一月 14, 2014 10:27 下午  回复

    Thank you for the post. Want more.

  2. JoyChou 二月 28, 2014 9:54 下午  回复

    哇擦,福利啊。

    • AppLeU0 三月 1, 2014 1:36 上午  回复

      这学期就不用怎么弄这个了 爽

Katherine 进行回复 取消回复

*