前言
因为俺们学校图书馆是预约制,头天晚上18点能预约第二天的位置,我在考研的时候预约了一个位置,结果下学期来的时候发现一直有人卡点预约位置,我又不能说我做了一个学期就是我的位置,所以萌生了想要利用软件来进行预约的想法
走过的路
首先我想到的是用IDEA来写代码,写一个爬虫,发送网络请求然后返回数据即可,最后我发现我不太懂Maven,就一直再看这方面的东西,但关键是第二天马上就要预约,所以我没有办法继续去学习下来,其实这种办法是最好的,最自动化的。
后来我又想到写一个Android程序进行预约,直接用retrofit来进行预约就可以了,然后发现我的电脑重装了系统,就找不到Android studio,下载又很慢,如果用android虽然麻烦点,但好歹都是学过的,重新看看自己的代码就捡回来了。就本来打算写一个Button然后点一下发送Http请求,请求就直接完事,以后就直接拿手机预约图书馆就好,但发现很困难去再配置环境安装Android studio,所以我就放弃了。
cookie的了解
本身觉得自己了解这个网络请求机制的不够,所以我就想先去了解一下,用chorme开发者工具先看看网页发送的过程,然后用Postman模拟一下,模拟模拟这我就想到了,最简单不是就可以直接去用Postman去发送数据。
在观察的过程中,我首先是登录图书馆系统,在登陆前按出f12看开发者工具
然后我就看到了login的网络请求,点进去是它发送的很多东西,然后我就扒下了这个网址,也就是请求登录的网址。然后我进行预约,看到了reserve相关的请求,我就扒下来放在了postman里
然后发现每次点send,就会写未登录?我就在想,肯定是我的token或者叫什么cookie没过来,所以它会说未登录。后来经我询问邓哥,我可以手动登录拿到cookie然后把cookie放到这个reserve申请的Headers里的cookie,就相当于带了个门票,拿着门票进门就肯定可以。然后我就一直找cookie在哪,首先是这里
但其实根本不行,问了好几次才发现是这个cookie是不完整的,没法去验证:我是我 。那我只能再去找
我以为是上面这个,结果这个也是不完整的。所以我就再问了问邓哥,邓哥给我发了张截图,意思是这样的:我在登录的同时,也请求了很多页面或者其他的数据,但是请求这些数据是需要cookie的,所以发送的get请求中一定会有完整的cookie。
我恍然大悟,我就在get中找到了真正的cookie
我现在的任务就是确定预约参数了!只要确定了预约参数,再加上cookie就可以了!
我发现其他的参数都很好理解:时间 响应时间等等,唯独这个
所以我猜测是桌号,只要知道了桌号就能进行预约。
所以我通过预约了一个没人的桌子拿到了桌号的规律:
括号里就是现实的桌号,而136几则是参数
所以这样就大功告成了!