【如何用代码获取学而思网校的上课信息】

        大家好,众所周知,很多人都上过学而思网校,有一次,我好奇就翻了翻学而思网校有关的文件,翻着翻这就找到了日志文件,具体是

        C:\Users\你的系统用户名\学而思网校\logs\xes_student_log

        它的日志文件中就包含了你上课用的头像以及你的中文名,英文名,和年级。甚至还可以发现你的老师,辅导老师的名字和头像,于是,我就开启了头脑风暴,能不能做一个读取个人信息乃至上课记录的程序呢,我翻了一下学而思编程社区,看到还真有人做这个。那么接下来直接上代码。

        主程序:

import start
import requests
import os
fw = open('res.txt', 'r', encoding='UTF-8')  # 新建文件保存结果
lines = fw.readlines()
 
for lines in lines:  # 对TXT 进行逐行读取
    a = lines
sth='''realName":"'''
realName = a.split(sth)[1]
resultname=''
x = '''"'''

for i in realName:
    if i == x:
        break
    else:
        resultname += i
res1 = ''
res1 = resultname

resultname = ''
sth='''englishName":"'''
realName = a.split(sth)[1]
resultname=''
x = '''"'''

for i in realName:
    if i == x:
        break
    else:
        resultname += i
s= resultname

resultname = ''
sth='''gradeName":"'''
realName = a.split(sth)[1]
resultname=''
x = '''"'''

for i in realName:
    if i == x:
        break
    else:
        resultname += i
t = resultname


resultname = ''
sth='''avatar":"'''
realName = a.split(sth)[1]
resultname=''
x = '''"'''

for i in realName:
    if i == x:
        break
    else:
        resultname += i
Download_addres=resultname
#把下载地址发送给requests模块
f=requests.get(Download_addres)
c="jpg"
#下载文件
a2 = "get."+c
with open("get."+c,"wb") as code:
    code.write(f.content)
import easygui as g
g.msgbox(title="个人信息",msg="姓名:"+res1+" 英文名:"+str(s)+" 年级:"+str(t),image="get.jpg",ok_button="作者太强了,我认输了")

start.py:

import os
import glob
current_path = os.path.abspath(__file__)
a = current_path
start = a.find('Users\\') + len('Users\\')
end = a.find('\\', start)
hhh = a[start:end]

folder_path = "C:\\Users\\"+hhh+"\\学而思网校\\logs\\xes_student_log\\"
file_paths = glob.glob(os.path.join(folder_path, "*"))
sorted_files = sorted(file_paths, key=os.path.getmtime)
last_file_path = sorted_files[-1]
fo = open(last_file_path, 'r', encoding='ANSI')  # 打开目标文件
fw = open('res.txt', 'w', encoding='UTF-8')  # 新建文件保存结果
lines = fo.readlines()
 
for lines in lines:  # 对TXT 进行逐行读取
    if 'realName'  in lines:
        res = lines
        if '[Debug]' in res:
            fw.write(res)
fo.close()
fw.close()

其实原理很简单。先看主程序,日志中有几个量:realName,englishName,avatar,gradeName

顾名思义:realName真实姓名,englishName英文名,avatar头像和gradeName年级。

把变量提取到几个字符串里,avatar是图像对应的网址,所以用爬虫把它爬下来,得到get.jpg。

最后直接用easygui把它整合到一块,就能获得信息了。

讲一下start.py其实就是把日志文件含有信息的一行读出来,存放到res.txt。

最后想说这个代码有bug就是回放名字和图片会读取错误,以后还会出优化版,另外这个日志不是能得到老师姓名和课程吗,大家还可以用这个思路做个看课记录表。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值