【Python】自动抢座助手

我去图书馆-自动抢座助手

参考
我去图书馆-抢座助手

“我去图书馆”公众号抢座的实现

igotolibrary

0. 待完善

1. 功能

  1. 多线程预约抢座
  2. 自动抢剩余座位

2. 数据

  1. 图书馆所有楼层数据
  2. 教室座位数据

3. 全自动

  1. 利用igotolibrary中所使用到的,微信公众号发送相关指令进行预约,然后在远程服务器运行代码

1. 抓包

利用手机抓包软件,发现预约抢座是利用GET指令发送请求来预定座位的

1
2
3
4
GET http://wechat.v2.traceint.com/index.php/reserve/get/libid=1161&ddMcTyDiDMPP=8,36&yzm=
1161:教室编号
ddMcTyDiDMPP:js脚本加密后的特殊代码
8,36:预约的座位

使用到的cookie有wechatSESS_IDSERVERIDHm_lpvt_7ecd21a13263a714793f376c18038a87Hm_lvt_7ecd21a13263a714793f376c18038a87

1
2
3
4
5
mcookies = dict(FROM_TYPE="weixin" ,wechatSESS_ID="",
Hm_lvt_7ecd21a13263a714793f376c18038a87="",
Hm_lpvt_7ecd21a13263a714793f376c18038a87="",
SERVERID=""
)

以上cookie需要通过手机、平板访问“我去图书馆”公众号,进入选座页面,抓包获得。有效期大概为一个小时

同时还需要利用上述方法多次抓包获取教室的id编号,以及座位编号,座位编号可添加到常用座位中,然后对主页进行抓包,可快速获取id

1
2
3
4
5
# 当天预约抓包页面
http://wechat.v2.traceint.com/index.php/reserve/index.html?f=wechat
http://wechat.v2.traceint.com/index.php/reserve/layout/libid=1161.html&1523076408
http://wechat.v2.traceint.com/index.php/reserve/get/libid=1161&ddMcTyDiDMPP=8,36&yzm=
# 以上后缀参数可改变

2. 代码实现

reserve-seat-in-lib

3. 使用

  1. 修改reserve_seat_today.py中的教室编号以及座位编号
  2. 抓包获取cookie,确保含有四个参数wechatSESS_IDSERVERIDHm_lpvt_7ecd21a13263a714793f376c18038a87Hm_lvt_7ecd21a13263a714793f376c18038a87,可多不可少,后续通过正则自动匹配
  3. 运行reserve_seat_today.py
  4. 点一下右上角的star及便时获取最新版本