吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1750|回复: 36
收起左侧

[Python 原创] 查看《好·分·数》平台的成绩

  [复制链接]
jingtiaopi 发表于 2024-11-15 17:09
本帖最后由 jingtiaopi 于 2024-11-22 16:31 编辑

因为外甥女期中考试结束,作为舅舅的我在打电话的时候,顺便问了一嘴考试咋样(作为过来人,明知孩子最烦问这个,但还是想知道考得咋样,明年就中考了。。。)。得知学校使用了《好分数》这个平台,不充会员就看不了分数,只显示一个等级。心里很不爽,但懒惰的我第一个想法就是来52找找有没有成品。找到了本站作者 @nuz 的好分数.exe,直接赠送爱币、热心值,下载体验一番,可惜了一直报错“无效的用户密码或无互联网链接”。因 qfluentwidgets 这个库一直安装不成功没法调试,只能自己动手了。

现提供可直接运行的 Windows 版本,界面粗糙了些,只是在虚拟机下的 Windows10 系统上测试没有问题。但有个问题是在 Windows 环境下,数据库保存不了用户名和密码,目前每次打开软件之后都需要重新输入(Mac 下不好调试,我再研究下,实在不行改为存文件吧)。


https://www.123684.com/s/EgIvTd-GGgk3?提取码:52pj

[Python] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
'''
--- 本程序仅查看《好·分·数》的总成绩、各科目分数
--- 因学校使用了好·分·数平台查分等其他功能,这本该学校义务提供的事项现在只能花钱才能获取,(有点想 TM M人 -_-#)
--- 参考本站作者 @nuz 的成品 好分数.exe,可惜接口有问题,一直提示"无效的用户密码或无互联网链接"。拉取代码调试一下吧
--- 结果 qfluentwidgets 这个库一直安装不成功,无奈...
--- 移动端的可降级 app,我看的 V3.10.0 的版本,可直接显示分数
--- 先暂且提供源码吧,后续增加 UI(看看大家的意见) 和其他功能(可行的话),另外后续还会再提供 iOS 版本的快捷指令
--- 本代码仅供学习与参考,不做其他非法用途
--- ⚠️ 温馨提示:需要修改以下 'userName' 和 'password' 字段的内容
'''
import requests
from base64 import b64encode
 
class Hfx(object):
    def __init__(self):
 
        # TODO: 修改登录好分数平台的用户名、密码
        self.user = {
            # 手机号 or 邮箱 (邮箱账号未验证)
            'userName': '',
            'password': ''
        }
        self.userInfo = {}
        self.cookies = {
            'hfs-session-id': ''
        }
        self.headers = {
            'Accept': 'application/json, text/plain, */*',
            'Content-Type': 'application/json;charset=UTF-8',
            'Origin': 'https://www.haofenshu.com',
            'Referer': 'https://www.haofenshu.com/',
            'Sec-Fetch-Dest': 'empty',
            'Sec-Fetch-Mode': 'cors',
            'Sec-Fetch-Site': 'cross-site',
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
            'deviceType': '3',
            'sec-ch-ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
            'sec-ch-ua-mobile': '?0',
            'sec-ch-ua-platform': '"macOS"',
        }
        self.base_url = 'https://hfs-be.yunxiao.com'
 
    def login(self):
        json_data = {
            'loginName': self.user['userName'],
            'password': b64encode(hfx.user['password'].encode('utf-8')).decode('utf-8'),
            'roleType': 2,
            'loginType': 1,
            'rememberMe': 2,
        }
 
        response = requests.post(f'{self.base_url}/v2/users/sessions', cookies=self.cookies, headers=self.headers,
                                 json=json_data).json()
        if response['code'] == 0:
            self.userInfo = response['data']
            token = self.userInfo['token']
            self.cookies['hfs-session-id'] = token
            self.headers['Hfs-Token'] = token
            self.getUserSnapshot()
        else:
            print(response['msg'])
 
    def getUserSnapshot(self):
        response = requests.get(f'{self.base_url}/v2/user-center/user-snapshot', cookies=self.cookies,
                                headers=self.headers).json()
        if response['code'] == 0:
            linkedStudent = response['data']['linkedStudent']
            keys = list(linkedStudent.keys())
            for key in keys:
                self.userInfo[key] = linkedStudent[key]
            print(f'{self.userInfo["studentName"]} --- {self.userInfo["schoolName"]}·{self.userInfo["sgrade"]}'
                  f'{self.userInfo["className"]}班')
            self.getExamList()
        else:
            print(response['msg'])
 
    def getExamList(self):
        params = {
            'start': '-1'
        }
        response = requests.get(f'{self.base_url}/v3/exam/list', params=params, headers=self.headers).json()
        if response['code'] == 0:
            data = response['data']
            list = data['list']
            print(f'\n{data["limitTip"]}\n')
            for paper in list:
                self.getOverviewExam(paper['examId'])
        else:
            print(response['msg'])
 
    def getOverviewExam(self, examId): # 2299726
        response = requests.get(f'{self.base_url}/v3/exam/{examId}/overview', cookies=self.cookies,
                                headers=self.headers).json()
        if response['code'] == 0:
            data = response['data']
            papers = data['papers']
 
            print(f'● 年级总人数:{data["gradeStuNum"]}人 \t 班级总人数:{data["classStuNum"]}人')
            print('-----------------------------------')
            print(f'● {data["name"]}\n')
            # print(f'\t得分:{data["score"]}分/{data["manfen"]}分,得分评级:{data["scoreS"]},'
            #       f'班级排名:{data["classRank"]}(仅作参考,不准),班级评级:{data["classRankS"]}')
            print(f'\t得分:{data["score"]}分/{data["manfen"]}分,得分评级:{data["scoreS"]},班级评级:{data["classRankS"]}')
            for paper in papers:
                print(f'\t{paper["name"]}\t\t{paper["score"]}分/{paper["manfen"]}分,得分评级:{paper["scoreS"]}')
            print('\n\n')
 
        else:
            print(response['msg'])
 
if __name__ == '__main__':
    hfx = Hfx()
    hfx.login()

免费评分

参与人数 4吾爱币 +9 热心值 +4 收起 理由
25308118 + 1 + 1 好分数主要看排名啊,之前那个大大做的带排名,你这个没有啊
a655400love + 1 + 1 鼓励转贴优秀软件安全工具和文档!
5loveme + 1 高手就是高手。
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

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

danxin5210 发表于 2025-1-7 17:06

那咱们就属于普通用户查看的分数。。会员分数不限制天数。。

等于是你把普通用户看不到120天给查看到了。
gaoxiaoao 发表于 2024-11-15 17:48
感谢楼主分享,有技术再给大外甥整一个考试题库。。。。
最新的 发表于 2024-11-15 18:04
vikin963 发表于 2024-11-15 18:13
好分数:bug已修复了
popofeng 发表于 2024-11-15 18:57
我也想有个这样有技术的好舅舅。
zpwz 发表于 2024-11-15 20:28
好分数:只有好分数,才会急于知晓好分数
vv168888 发表于 2024-11-15 20:35

我也想有个这样有技术
zyqking 发表于 2024-11-15 20:43
有技术篡改成绩,给大外甥整个高分
 楼主| jingtiaopi 发表于 2024-11-15 20:56
gaoxiaoao 发表于 2024-11-15 17:48
感谢楼主分享,有技术再给大外甥整一个考试题库。。。。

那我这个舅舅就彻底不认了
 楼主| jingtiaopi 发表于 2024-11-15 20:56
最新的 发表于 2024-11-15 18:04
好分数:我们已经在修复了

哈哈哈 且用且珍惜
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-5-29 02:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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