自动化刷课思路分享

如何让刷课操作自动化

  • 很多人刷课都是一直坐在电脑面前守候,但是对于学软件工程的人来说,这样未必有点low,小编今天给大家带来一些刷课思路,大家可以尝试下,具体的代码实现这里不能给出来,毕竟小编也是学生,抓到了怕是要被劝退,谅解。

方法一

  • 1 首先我们先熟悉下从登录一直到课程能到之后的流程:
    • 登录门户->进入选课界面->查看某一门课的选课人数,比如(100\100)->判断能不能选,能选的话填写验证码,然后没有时间冲突就能选,不能的话会提示不行->如果不能,大多数人选择的是苦苦等候…..
  • 2 这些操作完全可以让程序自动化,可以给大家提供一份伪代码:
url="选课界面的url"

# 其中的cookie中的username,和password就是在登录界面中<form>里面的name属性的值
cookie = {
"username": "...",
"password": "..."
}

while True:
    time.sleep(delay) # 这里每隔一个时间延迟访问一次,有些学校如果你刷的太快会封了你的,小编建议5-10分钟的一个随机时间
    # 访问url的同时,set_cookie,将上一步的cookie带入进去
    if into_url(cookie):
        # 访问成功,进入该页面找到选课按钮节点,也就是点击选课的那个按钮
        # 然后找到选课人数那个显示的文本段,假如是<p>100\100<p>
        if has_no_empty():
            # 如果是这种情况,那么就不需要进行任何操作了,因为满了,我们直接等delay分钟进行下一次的选择就好
            continue
        else:
            # 如果发现<p>100\99<p>,哇,可以选了,那下面两步操作
            # 1 没有验证码的情况,找到点击选课的那个按钮节点
            # 我假设这个按钮的id为"xuanke",使用js执行document.getElementByID("xuanke").click()
            if has_no_code():
                exejs.execute('document.getElementByID("xuanke").click()')
            else:
                # 如果有验证码,这个情况就可能需要有点技术了,比如图像识别等等,但是你也可以这样弄
                # 找到验证码的那个节点属性,下载验证码的那个图片到本地
                down_load_code_image()
                # 然后电脑发出警报,可以是放一首歌,或者设置个闹铃,这个时候听到闹铃说明就是有空位了
                tip_user()
                wait_for_input_code()
                # 查看保存的图片,然后填写验证码,自己看总知道填写什么吧
                code = input_code(image_path)
                upload(code)
                # 验证码验证成功后,赶紧模拟点击
                exejs.execute('document.getElementByID("xuanke").click()')
                # 也可能还需要再点一次确定,同样也是通过js去执行
                # ok 选好了,所有的过程只需要听到一次闹铃再去电脑面前就行

    else:
        # 可能系统检测出来你是电脑进入的,这个时候你需要设置一个User-Agent,这个网上有很多
        set_user_agent()
        # 然后再进行上面的步骤
  • 第一种是模拟用户行为进行访问,不算作弊,只要电脑不关,并且期间有人退课那你应该就是第一个能选上的,推荐大家使用第一种,小编也亲测成功。

方法二

  • 这个可能需要一些密码学的知识,小编也不太懂,但是今天看公司某位大神操作了一遍,具体的思路是清楚了。
  • 1 先自行登录门户网的选课界面,然后打开调试界面,chrome浏览器按F12就行,其他自行Google,查看选课按钮节点.
  • 2 观察这个按钮和哪些js文件有关联,或者哪些js段的文件有通过该按钮发送请求。
  • 3 假设我找到了一个a.js文件,里面有个关于这个按钮的点击事件的函数,那么我们就顺着这个按钮通过设置断点的形式一步一步的走下去分析,chrome设置断点调试大家可以看这里
  • 4 找到加密函数和时间的随机数如何设置的,再用fiddler去抓包,不懂的看这里,找接口
  • 5 上面的步骤都弄完了,基本上这个选课功能的流程都清楚了,至于执行什么样的操作,你懂的…

总结

  • 大家可以尝试分析一下,技术可以有,事情还是不建议这样做,毕竟对其他人尤其是苦苦守候在电脑面前的人 不太公平,有问题可以跟我留言。

猜你喜欢

转载自blog.csdn.net/g8433373/article/details/79515713