28行python代码实现哈工大一键申请出校41天

28行python代码实现哈工大一键申请出校41天

原理

概括:利用平台bug批量构造和发送申请出校请求

哈工大学工平台的出校申请接口主要有两个

  1. 获取出校申请列表

    import requests
    
    url = "https://xg.hit.edu.cn/zhxy-xgzs/xg_mobile/xsCxsq/getCxsqList"
    
    # Cookie是统一认证后生成的
    headers = {"Cookie": "JSESSIONID=12345678; JSESSIONID=87654321"}
    
    response = requests.request("POST", url, headers=headers)
    
    print(response.text)
    
  2. 保存出校申请信息

    import requests
    
    url = "https://xg.hit.edu.cn/zhxy-xgzs/xg_mobile/xsCxsq/saveCxsq"
    
    # 你该填的申请出校的信息
    payload = "info={"model":{"rq":"2023-02-16","cxly":"1","cxlx":"01","yjlxjsrq":"","id":"35da88e419a7408790feaf9293b726c6","lsjcjg":"","lsbgcjyy":"","lsjcsj":"-undefined-undefined","lsljjkmys":"","lsdsjxcmys":"","zdcxjssj":"","zdcxkssj":""}}"
    
    # Cookie是统一认证后生成的
    headers = {
        "Cookie": "JSESSIONID=12345678; JSESSIONID=87654321",
        "content-type": "application/x-www-form-urlencoded"
    }
    
    response = requests.request("POST", url, data=payload, headers=headers)
    
    print(response.text)
    

此外,该平台有一个bug,这也是能实现这个操作的关键:已有的申请记录修改日期不修改id的情况下,相当于进行了新一次的申请

因此我们可以利用getCxsqList获取所有过去的申请记录,再通过saveCxsq将它们的日期批量修改,就可以实现你有几个记录就可以申请多少天的效果,我是41天

代码及使用说明

import requests
from jsonpath import jsonpath
import datetime
import json

JSESSIONID1 = '12345678' # 统一认证获取
JSESSIONID2 = '87654321' # 统一认证获取

s = requests.Session()
headers = {'Cookie':'JSESSIONID=' + JSESSIONID1 + '; JSESSIONID=' + JSESSIONID2}
url = 'https://xg.hit.edu.cn/zhxy-xgzs/xg_mobile/xsCxsq/getCxsqList'
s.headers.update(headers)
r = s.post(url)
object = json.loads(r.text)
ids = jsonpath(object, '$.module.data[*].id')

today = datetime.date.today()
for id in ids:
    today = today + datetime.timedelta(1)
    rq = str(today)
    s = requests.Session()
    headers = {'Cookie':'JSESSIONID=' + JSESSIONID1 + '; JSESSIONID=' + JSESSIONID2}
    info = '{"model":{"rq":"' + rq + '","cxly":"1","cxlx":"01","yjlxjsrq":"","id":"' + id + '","lsjcjg":"","lsbgcjyy":"","lsjcsj":"-undefined-undefined","lsljjkmys":"","lsdsjxcmys":"","zdcxjssj":"","zdcxkssj":""}}'
    postdata = {'info':info}
    url = 'https://xg.hit.edu.cn/zhxy-xgzs/xg_mobile/xsCxsq/saveCxsq'
    s.headers.update(headers)
    r = s.post(url, data=postdata)
    print(r.text)

第一步:登录学工获取Cookie

浏览器登录https://xg.hit.edu.cn/zhxy-xgzs/xg_mobile/shsj/loginChange,并f12进入开发模式

在这里插入图片描述
统一身份认证 --> 临时出校 --> 找到getCxsqList
在这里插入图片描述
把你的两个JSESSIONID记下来

第二步:修改并运行代码

将代码中的JSESSIONID1和JSESSIONID2改成你自己的,然后运行代码即可
在这里插入图片描述

环境:
python3.9.1
缺什么包装什么包就好啦~

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值