大家好,众所周知,很多人都上过学而思网校,有一次,我好奇就翻了翻学而思网校有关的文件,翻着翻这就找到了日志文件,具体是
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就是回放名字和图片会读取错误,以后还会出优化版,另外这个日志不是能得到老师姓名和课程吗,大家还可以用这个思路做个看课记录表。