这个不是一个点击脚本,而是属于扩容性质的脚本。名额不够咱们利用技术来解决!

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

因为时间不够,来不及仔细琢磨,我第一想法就是直接提交选课的数据包(需要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

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',

'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',

'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',

'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才能抢,不适合其他人,这点还需要进步!

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

如何用python抢课_名额不够,技术来凑,利用Python实现教务系统强制性抢课相关推荐

  1. python青果教务系统抢课_名额不够,技术来凑,利用Python实现教务系统强制性抢课...

    最近一学期一次的抢课大戏又来了,几家欢乐几家愁.O(∩_∩)O哈哈~(l我每次一选就过了hah,我还是有欧的时候滴).看着他们盯着教务系统就着急,何况我们那教务系统,不想说什么.emmm 想周围的朋友 ...

  2. python个人博客搭建说明书_技术分享|利用Python Django一步步搭建个人博客(二)...

    原标题:技术分享|利用Python Django一步步搭建个人博客(二) Hello,欢迎来到我们的"利用Python Django一步步搭建个人博客"系列的第二部分.在第一部分中 ...

  3. 如何将c语言程序封装供python调用_转:用C语言扩展Python的功能

    一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型 ...

  4. 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...

    您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...

  5. 零度之下代码输入不了_期末考试查分,基于青果高校教务系统的一个自动python脚本代码

    回忆学校服务器,总是404爆炸卡顿,查分查不了,选课选不了之类的问题结佣而至, 于是试着用selenium自动化配合python代码编写了这个脚本,便于之后的查分环节,在这个环节中遇到了一些问题, 也 ...

  6. 南京农业大学教务系统大学生抢课——基于python的selenium包+谷歌浏览器

    目录 前言 一.前期准备 1.python环境搭建+VScode安装配置 2.安装selenium包+谷歌浏览器驱动程序 3.其它方法 二.代码 三.运行效果 总结 前言 本人南京农业大学本科,由于抢 ...

  7. 程度性数据python分析_用户画像准确性评测初探——拨开python大数据分析的神秘面纱...

    导读 本文主要包括两部分内容,第一部分会对零零散散进行了两个多月的用户画像评测做个简要回顾和总结,第二部分会对测试中用到的python大数据处理神器pandas做个整体介绍. Part1用户画像评测回 ...

  8. python人才_【北软互联】上海python人才外派|上海python程序员人力外包|上海python工程师开发驻场|上海python软件劳务派遣公司...

    python人才简述 python是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此python语言具有功能强大和简单易用两个特征.python ...

  9. python 脑洞_从说韩语到写Python,这个数据媛的脑洞有毒吧

    你好,Hello,안녕하세요, こんにちは,我是会说四门语言,但是日语可以忽略,韩语也差不多已经忘记,转而写R和Python的语言学迷妹聂大哥. 我要说的脑洞有毒的数据媛就是我计己,哈哈.正式入坑数据 ...

最新文章

  1. 培养组学对已分离人类细菌和古菌物种库的贡献
  2. Debian和CentOS主流系统按包含文件名称搜索软件包
  3. python3 字典 dict 创建 添加 修改 复制 取值 删除
  4. 根据经纬度计算范围_地理计算专题(上)
  5. java习题8,Java经典练习题8
  6. 压力真的会害死你,我也轻度抑郁过
  7. centos dhcp 服务器搭建 多vlan
  8. ionic4 中使用 url scheme 插件 点击链接打开app
  9. git遇到的问题 .Git: There is no tracking information for the current branch.
  10. mysql与串口通信_串口通信 - ShawnXie - 博客园
  11. 3-13 图片几何变换小结
  12. Spring Boot 定时任务,怎么实现任务动态增删启停?
  13. LeetCode:每日一题(2020.4.15)
  14. hdfs 中chunk_HDFS读写流程
  15. android 锁屏界面来电话,android锁屏界面短信解锁指向怎么修改?
  16. 矩阵代数(四)- 分块矩阵
  17. 内存分配方式及内存碎片
  18. 很舒服的几句话,心静,人就不会累了
  19. Modeling Conversation Structure and Temporal Dynamics for Jointly Predicting Rumor Stance and Veraci
  20. 爬取94神马网的电影信息

热门文章

  1. 为什么SpringBoot如此受欢迎,以及如何有效地学习SpringBoot?
  2. mockito_吸收Mockito的流利度
  3. Java中的异步等待
  4. ubuntu生成密钥和证书_基于浏览器的密钥生成以及与浏览器的密钥/证书存储的交互...
  5. 通过分区在Kafka中实现订单保证人
  6. 会议季Mic Drop:您不应该错过的13场Java演讲
  7. MVC 1.0的可能方法
  8. 内核堆栈 用户堆栈_堆栈痕迹从何而来?
  9. [MEGA DEAL]专家级Java捆绑包新手(96%)
  10. 实现Java监视的12个步骤程序存在缺陷