江西师范大学自习室座位预约的一次脚本实现

2022年4月29日 09:34 ry 1024

之前我的考研朋友吐槽自习室的座位太难抢了,每次一到点就卡住,经常面临着座位难预约的情况,便想开发一个脚本来抢座位,话不多说,找到座位预约的官网,如图所示

开始为登录页面,账号为对应的学号,密码一般都有初试密码,先抓包,按F12或者右键开发者工具,数据包如图所示

账号密码都为明文。。。其他的参数都固定,好家伙,直接post模拟请求,上代码

headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',

    }
data = {
        "login_name":账号,
        "password":密码,
        "ui_type":"com.Raw",
        "code":"fc4ad6209eb514fd9cc473cb4d24d33e",
        "str":"z7xUHSllnp78SMKh",
        "org_id":"142",
        "_ApplicationId":"lab4",
        "_JavaScriptKey":"lab4",
        "_ClientVersion":"js_xxx",
        "_InstallationId":"89fb16cb-0b4b-b32b-fdcd-393485337d92"
    }
url = 'https://xxxx/login'
r = requests.post(url,headers=headers,json=data)
print(r.json())

为了安全,暂时不透露具体链接了。登录返回的数据为用户个人数据,结果如图

主要部分就是登录后获取它的cookie即可,进入后,选择楼层

不同;楼层对应的id不同,抓包很容易发现其对应关系

'二楼北自习室': '35',
        '二楼南自习室': '36',
        '三楼北自习室': '37',
        '三楼南自习室': '31',

随机点开一个进入,如图所示

经过研究发现,这里注意的是开始时间以小时为整数取时间戳,比如现在的上午9:59,则这里的时间依然是9点整开始,这里注意,因为后面的begintime字段就是这样对应的,使用时长以一小时3600为单位,对应后面的durition字段,点击开始选座,如图·

查看其返回的response字段,如图

接下来就到最好的确定预约界面了,点击预约,查看器数据包

整个过程无任何验证加密的,过程梳理虾,先登录获取cookie,然后选择楼层post获取该楼层下你想要的座位号对应的id,接着post提交你要预约的座位数据即可实现预约,整个过程很简单,就3个post请求,具体代码就不发出来了,发现学校的网站很大漏洞,绝大部分初始密码都没改,我都可以直接修改取消他们的座位预约了,还有用户数据的登录了名字电话号码也可应直接拿到,太无语了

如果上述代码帮助您很多,可以打赏下以减少服务器的开支吗,万分感谢!

欢迎发表评论~

点击此处登录后即可评论


评论列表
2023年4月8日 22:21 ry: 回复
最新脚本定制,需要的私我:qq:1449917271 微信liuyoudyping


赣ICP备2021001574号-1

赣公网安备 36092402000079号