吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20372|回复: 87
上一主题 下一主题
收起左侧

[Python 转载] 基于python写的 超星学习通、智慧树 课程查询小工具 包含验证码识别【开源】

[复制链接]
跳转到指定楼层
楼主
featmellwo 发表于 2020-1-12 21:24 回帖奖励
说明
前段时间研究了下超星和智慧树的登录协议,并尝试写了一个自动登录并获取课程的程序。
包含了超星的验证码识别 ,准确率达到98%




超星登录分析:

需要参数:学校 密码 验证码


首先抓了一下他的学校选择接口如下
[Asm] 纯文本查看 复制代码
https://passport2.chaoxing.com/org/searchUnis?filter=学校&product=44
返回一个带schoolid的json数据
然后我们需要获取一下需要识别的验证码,并识别出验证码(本地识别库已打包)验证码接口GEThttps://passport2.chaoxing.com/num/code
最后分析登录接口:POST
[Asm] 纯文本查看 复制代码
https://passport2.chaoxing.com/unitlogin
PSOT参数
'fid': 学校id
'numcode': 验证码
'password': 密码
'uname': 学号


登录成功后直接去课程页面获取课程即可GEThttp://mooc1-2.chaoxing.com/visit/courses


智慧树分析同样是学校 学号 密码(居然没有验证码?!) 按照上面的思路,先获取学校,抓包找一下学校最后很神奇的发现智慧树把所有学校都放在了一起
由于智慧树并不需要验证码所以我们直接抓登录的登录接口:POST
[Asm] 纯文本查看 复制代码
https://passport.zhihuishu.com/user/validateCodeAndPassword
'code':学号
'password':密码
'schoolId':学校

此接口获取的是加密后的密码 GET然后登录https://passport.zhihuishu.com/login?pwd=' + 加密后的密码+"&service=https://onlineservice.zhihuishu.com/login/gologin登录成功后访问此网址获取uuid GEThttps://onlineservice.zhihuishu.com/login/getLoginUserInfo最后通过uuid获取课程https://onlineservice.zhihuishu.com/student/getStudentNoCommitExam?uuid="+uuid然后可以看到课程已经出现了,,,,
PS:由于之前抓的接口,也懒得贴具体返回信息了,大家可以自己去研究下源码


源码+识别库打包↓链接:https://pan.baidu.com/s/1v7wE3MLcC3q1mDJw8MZkqg
提取码:fklu
复制这段内容后打开百度网盘手机App,操作更方便哦

下载地址.txt

140 Bytes, 阅读权限: 10, 下载次数: 116, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 15吾爱币 +13 热心值 +14 收起 理由
miraclehw + 1 + 1 用心讨论,共获提升!
px307 + 1 谢谢@Thanks!
乐于助人 + 1 + 1 热心回复!
87832649 + 1 + 1 用心讨论,共获提升!
zhanghanyu0910 + 1 学习一下技术,点赞!
Celeste + 1 热心回复!
创世2 + 1 我很赞同!
kyrzy0416 + 1 + 1 谢谢@Thanks!
kevin32196 + 1 + 1 我很赞同!
mei564335 + 1 + 1 热心回复!
artificial5 + 1 + 1 我很赞同!
purple01 + 1 + 1 我很赞同!
C丶T + 1 + 1 热心回复!
yjn866y + 1 + 1 热心回复!
luanshils + 2 + 1 我很赞同!

查看全部评分

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

推荐
jokerlicf 发表于 2020-4-17 15:07
朝夕忆浅 发表于 2020-1-15 16:09
楼主 验证码识别那块我调用时报如下错误,是怎么回事啊
ValueError: Procedure called with not enough ar ...

将from ctypes import *改为import ctypes
将 obj= CDLL("C:\\Users\\Administrator\\Desktop\\test\\demo.dll")改为obj= ctypes.WinDLL("C:\\Users\\Administrator\\Desktop\\test\\demo.dll")

再调用就可以了,测试了只能识别纯数字的验证码。
沙发
luanshils 发表于 2020-1-12 21:36
3#
yjn866y 发表于 2020-1-12 21:40
4#
wangyantc 发表于 2020-1-12 21:42
谢谢分享
5#
purple01 发表于 2020-1-12 21:56

谢谢分享
6#
kenda 发表于 2020-1-12 22:08
正好学习python, 学习一下
7#
kefeimao 发表于 2020-1-12 22:15
学习学习
8#
tyyv110 发表于 2020-1-12 22:32
学习学习 一下
9#
dtxingmc 发表于 2020-1-12 22:39
谢谢楼主分享
10#
立竿见影 发表于 2020-1-12 22:41
福娃的福气
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 09:12

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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