适合学校的抢球场,抢图书馆位置等公共资源软件设计思路(以中国石油大学(华东)为例)

简介: 适合学校的抢球场,抢图书馆位置等公共资源软件设计思路(以中国石油大学(华东)为例)

前提背景:


       在学校中存在很多公共资源需要抢,比如自习室的线上抢,图书馆的线上抢,体育场的线上抢,但是很多时候刚开放就没有了,为了深入探索这一现象,开始针对学校内此问题进行研究,并结合自己学校实例实现羽毛球馆的抢场地软件。


中国石油大学(华东)羽毛球抢场地系统


       打开中国石油大学体育馆,点击场地预定。

       选择好馆,然后选择时间进行预定

  如图所示,上面有很多绿色的格子,每个格子上面都有数字,对应的是在当前时间段是否可抢,如果是没颜色的格子,就不能抢。

       点击提交订单就可以抢到自己能打的场子。


以上就是学校抢羽毛球场地的全部流程,但是如果一切都能这么顺利就好了,学校是每天早上八点左右能开始抢当天的和第二天的场地,但是一般来说,由于学校的羽毛球爱好者众多,所以场地哪怕每个时间段有13个(主馆6个副官7个)也不经常能抢到场地,甚至还需要经常的从场地贩子哪里买,所以结合专业知识去研究出了羽毛球抢场地系统。


中国石油大学(华东)羽毛球抢场地系统分析


       细心的小伙伴可能会发现,我的以上操作实际上最重要的一步就是提交订单的部分,所以最直接的就是,分析点击“提交订单”后像服务器发送的请求。


       将对应的页面在浏览器中打开,如下

       打开开发者模式,当点击付款的时候,便会捕获到页面向后台发送的信息。

       可以看到,当我们发送点击之后,就会增加一个新的网络请求捕捉(在这里需要真实的充值缴费才可以)

       在这里可以看到该请求的所有信息。

  上图是需要向后台发送的数据。


       通过这样的分析,实际上已经将羽毛球场地系统分析出来了。通过我们的点击,携带所需要的场地,发送给后台进行抢场地,如果顺序的话,那么场地会被抢到。然后绑定的微信端就会发送信息。

以上便完成了中国石油大学(华东)羽毛球抢场地系统分析。


中国石油大学(华东)羽毛球抢场地系统理论实现


       通过前面的分析,实际上最关键的就是向后台发送一个请求,携带着选择的信息。


       那么通过实践,有两种比较简单的实现方法。


  • 通过浏览器模拟鼠标的行为,用自动化技术seleium爬虫 代替 人来进行点击(慢)
  • 使用post提交,直接向后台发送请求,模拟浏览器从而绕过浏览器(快)


自动化seleium


 Seleium测试直接运行在浏览器中,就像真正的用户在操作一样。通过浏览器打开预定场地页面然后执行,设定定时器将一切自动化,极大的节省了人员时间。但是缺点是,由于羽毛球抢场地系统到了8点加载有点慢,以及网络的问题,实际上加载出来的时候场地就已经没了,所以该方法比较慢,成功率很低。但是可以进行修改变成爬虫系统。经过实验测试,修改后的爬虫可以爬取到想要的信息。


post提交


       将获取到的请求头和响应头进行分析,并捕获到发送的数据,这样就可以通过程序后台post直接向羽毛球的服务器发送抢场地信息,节省了浏览器加载资源的时间,非常快,成功率非常高。


中国石油大学(华东)羽毛球抢场地系统代码开源


https://gitee.com/ni-hongsheng/badminton 以上为结合以上分析步骤并稍加改进的代码实现


思路扩展


       通过显示案例可以明白在学校内部的抢公共资源是大概怎么样的流程,中国石油大学(华东)的羽毛球抢场地系统是在微信中,所以最重要的是获取到一个wxkey,但是这个通过测试都能获取到,所以就能还原到后端之间发送请求的逻辑实现。


那么将此场景应用到抢图书馆位置,抢课其实大体流程也是一样的,一些比较好的课和位置其实大多数人是抢不到的,在设计软件的时候可以先测试容易抢的,将发送的信息解析出来,然后应用到不好抢的地方。

目录
相关文章
|
4月前
|
人工智能 云栖大会
|
4月前
|
人工智能 云栖大会
|
7月前
|
SQL 机器学习/深度学习 前端开发
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
|
云栖大会
【免费】2023云栖大会门票开抢啦!数量有限,先到先得!
报名方式:点击链接即可报名!10月31日-11月2日,让我们齐聚云栖小镇!
439 0
【免费】2023云栖大会门票开抢啦!数量有限,先到先得!
传奇开服技术基础十条处理办法110.42.2
传奇开服技术基础十条处理办法110.42.2
(模拟)(笔记)1241. 外卖店优先级
(模拟)(笔记)1241. 外卖店优先级
82 0
|
小程序 安全 数据库
手把手教你搭建消防安全答题小程序-在结果页中实现从云数据库查询成绩
手把手教你搭建消防安全答题小程序-在结果页中实现从云数据库查询成绩
手把手教你搭建消防安全答题小程序-在结果页中实现从云数据库查询成绩
|
Java
编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程
编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程
260 0
编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程
|
Linux Python
本人是一名就读软件技术大三的一名学生,因为最近疫情原因学校开始封闭式管理,开始网上教学模式,老师们在我上给我们授课,应为疫情原因课余时间也只能在宿舍呆着,我们老师给我们推荐了阿里云的飞天加速计划,可以在阿里云领取一份学生专享服务器,正好我们最近课程需要所以通过老师知道了阿里云服务器,也领取到了14天使用权限。我觉得要好好趁着最近课余时间充足学习一下云服务器的功能与作用
本人是一名就读软件技术大三的一名学生,因为最近疫情原因学校开始封闭式管理,开始网上教学模式,老师们在我上给我们授课,应为疫情原因课余时间也只能在宿舍呆着,我们老师给我们推荐了阿里云的飞天加速计划,可以在阿里云领取一份学生专享服务器,正好我们最近课程需要所以通过老师知道了阿里云服务器,也领取到了14天使用权限。我觉得要好好趁着最近课余时间充足学习一下云服务器的功能与作用
|
Web App开发 数据可视化 程序员
智能化时代你还在手动刷新浏览器抢火车票?那你就真的Out了!假期快来了,冰河提前放大招,教你如何使用Python脚本自动抢火车票
如果我们手动登陆12306网站,登录时需要输入用户名与密码,然后需要输入蛋疼的验证码,然后选择起、始站,时间,车次类型,点击查询,再选择车次,乘客,提交订单。如果按照这样的手动操作下来,票早已经没有了!!
172 0