吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5111|回复: 20
收起左侧

[Python 转载] 超星学习通图书馆座位签到

   关闭 [复制链接]
bone 发表于 2022-11-11 21:39
本帖最后由 bone 于 2022-11-11 23:58 编辑

基于@nianboy的预约作品,发现座位每天早上要签到,不然会导致违约。故在大佬代码的基础上删减增加实现签到。
[Python] 纯文本查看 复制代码
# -*- coding: utf8 -*-
# coder:nianboy
# modify:bone
# time:2022-11-11
import requests
import re
import datetime


class ChaoXing:
    def __init__(self, seatId):
        today = datetime.datetime.now()
        self.today= today
        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 + "%3A30"
        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/data/apps/seat/reserve/info?id=" + str(
            id) + "&seatNum=" + str(
            self.seatId) )
        page_resp = self. session.get(url=page_url, headers=self.headers).text
        self.pageToken = re.findall(r"馆)\",\"id\":(\d+)", page_resp)[0]
        
        url = (
                "http://office.chaoxing.com/data/apps/seat/sign?id=" + str(
            self.pageToken)
        )
        print(self.today)
        page_text = self.session.get(url=url, headers=self.headers).text
        if '"success":true' in page_text:
            print(url + "房间号:" + str(
            id) + " 座位号:" + str(
            self.seatId) + " 签到成功!")
        else:
            print(url + page_text + "房间号:" + str(
            id) + " 座位号:" + str(
            self.seatId) + " 签到失败!")
        

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

免费评分

参与人数 4吾爱币 +1 热心值 +4 收起 理由
Shy512 + 1 用心讨论,共获提升!
nianboy + 1 + 1 用心讨论,共获提升!
456123gsm + 1 感谢感谢🙏
zhangwei2002 + 1 我很赞同!

查看全部评分

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

BrightXu 发表于 2022-11-12 00:51
哎,毕业了才看到,,,可惜,,,雕栏玉砌应犹在,只是朱颜改。

免费评分

参与人数 1吾爱币 +1 收起 理由
bone + 1 用心讨论,共获提升!

查看全部评分

 楼主| bone 发表于 2022-11-12 23:16
Brian123 发表于 2022-11-12 22:57
大佬,可以详细出一个图书馆签到的帖子吗?

我不知道别的学校的原理是怎么弄。我们学校是桌子上有二维码要扫,扫码里面有签到、退坐、暂离的url,只有URL最后的ID每次不一样,但是ID在二维码的响应体里面,每次获取ID再拼一下url就行了。代码我是抄别人的nianboy的代码。
BrettDean 发表于 2022-11-11 23:20
我丢,去年就想做类似的,抓包下来发现是好想是加密的就没搞了,可惜毕业了hhh,另外签到应该需要在定位范围内吧。
nianboy 发表于 2022-11-11 23:21
之前想加来着,后来忘了
 楼主| bone 发表于 2022-11-11 23:57
nianboy 发表于 2022-11-11 23:21
之前想加来着,后来忘了

哈哈哈,我实现的简单,全靠你的代码
 楼主| bone 发表于 2022-11-11 23:58
BrettDean 发表于 2022-11-11 23:20
我丢,去年就想做类似的,抓包下来发现是好想是加密的就没搞了,可惜毕业了hhh,另外签到应该需要在定位范 ...

我们学校的简单仅通过URL实现的
lqt173 发表于 2022-11-12 00:20
感谢分享
cosette96 发表于 2022-11-12 07:11
毕业了才看到!还是支持大佬,以后我弟弟用得着
Phantom可 发表于 2022-11-12 08:35
超星学习通 考试题库 哪里有
1666666 发表于 2022-11-12 11:28

楼主加油!楼主加油!楼主加油!楼主加油
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 21:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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