吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3962|回复: 10
收起左侧

[Python 原创] 超星学习通自习室座位预约

  [复制链接]
nianboy 发表于 2022-9-24 15:12
本帖最后由 nianboy 于 2022-9-24 20:44 编辑

最近有个学弟问我学习通自习室的座位预约能否实现python自动化预约.简单抓包了解一下,发现跟图书馆的预约差不多.于是就写出来了,代码有点简陋,但是又不是不能用手动滑稽.
[Python] 纯文本查看 复制代码
# -*- coding: utf8 -*-
#coder:nianboy
#time:2022-9-14
import requests
import re
import datetime


class ChaoXing:
    def __init__(self, seatId):
        today = datetime.datetime.now()
        self.seatId = seatId
        self.nowtime = today.strftime("%Y-%m-%d")
        self.lasttime = (today + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
        self.headers = {
            "User-agent": "Mozilla/4.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
        }
        self.session = requests.session()

    def sceen_data(self,id,start_time,end_time,name,pwd):
        global today_time
        start_time = start_time + "%3A00"
        end_time = end_time + "%3A00"
        login_api = "https://passport2.chaoxing.com/api/login"
        params = {
            "name": name,  # 学习通账号
            "pwd": pwd,  # 学习通密码
            "verify": "0",
            "schoolid": "",
        }
        self.session.get(login_api, params=params, headers=self.headers)
        page_url = "http://office.chaoxing.com/front/third/apps/seat/list?deptIdEnc=cb783d1327681137"
        page_resp = self.session.get(url=page_url, headers=self.headers).text
        self.pageToken = re.findall(r"'&pageToken='.*?'(.*?)'", page_resp)[0]
        url = (
                "https://office.chaoxing.com/front/third/apps/seat/select?id="+str(id)+"&day=" + self.nowtime + "&backLevel=2&pageToken=" + str(
            self.pageToken) + "&fidEnc=cb783d1327681137"
        )
        r1 = self.session.get(url=url, headers=self.headers).text
        self.token = re.findall(r"token: '(.*?)'", r1)[0]
        url = (
                "https://office.chaoxing.com/data/apps/seat/submit?roomId="+str(id)+"&startTime="+start_time+"&endTime="+end_time+"&day=" + self.nowtime + "&seatNum=" + str(
            self.seatId) + "&captcha=&token=" + str(self.token)
        )
        page_text = self.session.get(url=url, headers=self.headers).text
        if '"success":true' in page_text:
            print("预约成功!")
        else:
            print(page_text + "预约失败!")


if __name__ == "__main__":
    chaoxing = ChaoXing(seatId="")  # 座位号
    chaoxing.sceen_data(id="",start_time="16",end_time="19",name='',pwd='')
    #id需要抓包,start_time是预约开始时间,end_time是结束预约时间,name是学习通账号,pwd是学习通密码

免费评分

参与人数 5吾爱币 +10 热心值 +4 收起 理由
hal1314 + 1 鼓励转贴优秀软件安全工具和文档!
bone + 1 + 1 谢谢@Thanks!
DJHHHH + 1 我很赞同!
hxiang + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| nianboy 发表于 2022-9-24 20:45
点点免费的评分把
aspllh 发表于 2022-9-25 23:27
dataddd2 发表于 2022-9-28 10:16
bone 发表于 2022-11-3 09:42
本帖最后由 bone 于 2022-11-3 21:25 编辑

预约的url新增了enc
superWang 发表于 2023-5-23 22:21
老哥 有时会显示保存失败是什么原因呢
superWang 发表于 2023-6-4 22:37
bone 发表于 2022-11-3 09:42
预约的url新增了enc

有没有办法搞掉enc呢
aqwly 发表于 2023-6-5 09:22
学习了..感谢大佬的教程!
hal1314 发表于 2023-6-24 21:33
谢谢大佬的分享
hal1314 发表于 2023-6-28 21:19
老哥太强了!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表