最近一学期一次的抢课大戏又来了,几家欢乐几家愁。O(∩_∩)O哈哈~(l我每次一选就过了hah,我还是有欧的时候滴)。看着他们盯着教务系统就着急,何况我们那教务系统,不想说什么。emmm 想周围的朋友,正好下午利用扩容前一点时间写了个小脚本帮助朋友抢课。(当然抢到了啦,^_^)

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

因为时间不够,来不及仔细琢磨,我第一想法就是直接提交选课的数据包(需要cookie和课程ID),先用同学的账号登录教务系统,进入到选课的地方,打开浏览器的开发模式(按F12),点击Network()我这里是谷歌浏览器,如果是其他的找到网络抓包即可。马上尝试!

我们需要的是提交选课的那个数据包,然后用python一直提交模拟。接下来找到提交的数据包。

我们先点击选课(我是已经选择过了,给大家看下点击后的情况)

我们来看下这个数据包的内容,我们需要找到cookie( 你的身份标识),以及我们需要选的课程ID),然后用python模拟提交就OK了。

将这两个数据保存下来后面用的到,还注意下URL哦,就是课程ID的那个地址。

下面的代码部分。
import requests
from future.backports.test.ssl_servers import threading
 
 # 获取cookie 和 课程id就可以抢课
 
 
def qian1():
    data = 201820192001656
    # data 是找到的课程ID,因为python没学好,代码写的有点乱
    # 下面是地址 就是我们抓到的那个数据包的URL
    url = 'http://****(学校的地址).edu.cn/jsxsd/xsxkkc/bxxkOper?jx0404id='+str(data)
    cookie = ' 用找到的cookie替换'
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
        'Referer': 'http://........../srun_portal_pc.php?ac_id=1',
        'cookie':cookie
    }
 
    # 一直抢!
    while True:
        # 设定5s服务器未应答就放弃这次,鬼知道是服务器炸了还是。。。。
        mes = requests.get(url, headers=header, timeout=5) 
        # 打印返回的结果,就是弹出来的那个小窗口的内容
        print(str(1)+str(mes.status_code)+':'+str(mes.text))
 
 
# 后面是不同的课,因为不能吊在一课树上!
def qian():
    data = 201820192001302
    url = 'http://*****/jsxsd/xsxkkc/bxxkOper?jx0404id='+str(data)
    cookie = '*****cookie'
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
        'Referer': 'http://172.30.1.70/srun_portal_pc.php?ac_id=1',
        'cookie':cookie
    }
    while True:
        mes = requests.get(url, headers=header, timeout=5)
        print(str(0)+str(mes.status_code)+':'+str(mes.text))
 
 
 
def qian2():
    data = 201820192001155
    url = 'http://****n/jsxsd/xsxkkc/bxxkOper?jx0404id=' + str(data)
    cookie = 'cookie'
 
 
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
        'Referer': 'http://172.30.1.70/srun_portal_pc.php?ac_id=1',
        'cookie': cookie
    }
    while True:
        mes = requests.get(url, headers=header, timeout=5)
        print(str(2)+str(mes.status_code) + ':' + str(mes.text))
 
 
 
def main():
    # 开多线程分开抢课
    # 接下来就会一直抢课!
    thread1 = threading.Thread(target=qian)
    thread2 = threading.Thread(target=qian1)
    thread3 = threading.Thread(target=qian2)
    thread4 = threading.Thread(target=qian)
    thread5 = threading.Thread(target=qian1)
    thread6 = threading.Thread(target=qian2)
    thread1.start()
    thread2.start()
    thread3.start()
    thread4.start()
    thread5.start()
    thread6.start()
 
 
 
main()

下面是效果图:

开始

帮小伙伴抢课成功,而且学校这节课只扩了2个人,其中一个被我抢到了!hah

总结:

用多线程抢应该靠谱些(我Python线程没学好,还需要加油!)

需要cookie才能抢,不适合其他人,这点还需要进步!

希望以后能先多思考再动手,可以少吃很多亏!!!加油ヾ(◍°∇°◍)ノ゙

最新文章

  1. TCP协议学习记录 (一) ICMP时间戳请求
  2. Oracle建表脚本记录
  3. iOS拨打电话的三种方式
  4. Linux-获取当前正在执行脚本的绝对路径
  5. WCF学习心得------(六)数据协定
  6. moto xt800 刷机到2.2.2
  7. ubuntu下tomcat启动巨慢分析
  8. python方式实现scoket通信
  9. IT人员应该怎么跳槽
  10. Javascript 风格向导
  11. Red Hat Enterprise Linux7的安装与oracle 12c的安装
  12. Ubuntu下定时任务和自启动任务的部署
  13. python学习第23天
  14. 常见IT工具软件总结
  15. Vue学习目录
  16. linux内核分析第六周学习笔记
  17. Java知多少(上)
  18. vb中去掉string数组的一部分
  19. Docker 容器入门
  20. [转帖]常见USB种类

热门文章

  1. java 面向对象(二十八):异常 一
  2. Django之模型的_meta属性
  3. cnn卷积理解
  4. python爬虫学习01--电子书爬取
  5. 第八章:理解Window和WindowManager
  6. html-webpack-plugin在html中插入数据
  7. 可能这是Redis可视化工具最全的横向评测
  8. 题解 CF1385D 【a-Good String】
  9. 视图相关SQL
  10. [spring cloud] -- 服务注册与服务发现篇