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

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

前提背景:


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


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


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

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

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

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


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


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


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


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

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

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

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

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


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

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


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


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


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


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


自动化seleium


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


post提交


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


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


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


思路扩展


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


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

目录
相关文章
|
3月前
|
人工智能 云栖大会
|
3月前
|
人工智能 云栖大会
|
6月前
|
SQL 机器学习/深度学习 前端开发
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
10个宝藏级编程资源,让你省下8K学费不香吗_类似javaguide的前端网站
|
6月前
|
SQL 机器学习/深度学习 前端开发
10个宝藏级编程资源,让你省下8K学费不香吗
10个宝藏级编程资源,让你省下8K学费不香吗
10个宝藏级编程资源,让你省下8K学费不香吗
|
6月前
|
小程序 JavaScript Java
二手交易|校园二手交易小程序|基于微信小程序的闲置物品交易平台设计与实现(源码+数据库+文档)
二手交易|校园二手交易小程序|基于微信小程序的闲置物品交易平台设计与实现(源码+数据库+文档)
268 1
|
云栖大会
【免费】2023云栖大会门票开抢啦!数量有限,先到先得!
报名方式:点击链接即可报名!10月31日-11月2日,让我们齐聚云栖小镇!
433 0
【免费】2023云栖大会门票开抢啦!数量有限,先到先得!
传奇开服技术基础十条处理办法110.42.2
传奇开服技术基础十条处理办法110.42.2
|
人工智能 数据可视化 安全
新医物联-魔法食堂解决方案 | 学习笔记
快速学习新医物联-魔法食堂解决方案
158 0
新医物联-魔法食堂解决方案  |  学习笔记
简单几步,上线西部世界里同款自动钢琴
基于云开发平台把自动钢琴搬到了线上,只需简单几步就实现同款自动钢琴。
简单几步,上线西部世界里同款自动钢琴
|
Cloud Native Dubbo Java
寒假充电季,防疫不停学!参与Alibaba Java技术图谱21天打卡活动,赢多重好礼!
参与21天打卡,赢总价值超3000元的活动好礼!这个寒假,我们帮你用小节点拆分难啃的大图谱,让持续学习的习惯养成变得不再复杂!
3753 0
寒假充电季,防疫不停学!参与Alibaba Java技术图谱21天打卡活动,赢多重好礼!