# 基于request, re, pytesseract, PIL 开发的一键查分python。
# 需要输入学号和密码。# 1.验证码图片识别处理
import pytesseract
from PIL import Imagedef ca(filename: str) -> str:# Preprocess image for better OCR result.def clear_image(image: Image):def get_noise_color(image: Image):for y in range(1, image.size[1] - 1):# get the non-white colour at col 2(r, g, b) = image.getpixel((2, y))if r < 255 and g < 255 and b < 255:return r, g, bimage = image.convert('RGB')width = image.size[0]height = image.size[1]noise_color = get_noise_color(image)for x in range(width):for y in range(height):# remove borders & interference coloursrgb = image.getpixel((x, y))if (x == 0 or y == 0 or x == width - 1 or y == height - 1or rgb == noise_color or rgb[1] > 100):image.putpixel((x, y), (255, 255, 255))return imageimage = Image.open(filename)image_grayscale = clear_image(image).convert('L')  # grayscaleresult: str = pytesseract.image_to_string(image_grayscale).strip()return ''.join(ch for ch in result if ch.isalnum())# 验证码识别如上 调用形式如 ca("图片名称")即可# 2.模拟登录
def login(username, password):while True:login_url = 'https://jxgl.gdufs.edu.cn/jsxsd/xk/LoginToXkLdap'# 2.1 获取验证码并保存
import requests
import resession = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36         (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36',
}def login(username, password):# 识别次数times = 0while True:login_url = 'https://jxgl.gdufs.edu.cn/jsxsd/xk/LoginToXkLdap'# 获取验证码url并下载resp = session.post(url=login_url, headers=headers).textverify_code_re = re.compile(r'<img  src="(.*?)" id="SafeCodeImg"', re.S)verify_code_url = re.findall(verify_code_re, resp)verify_url = f'https://jxgl.gdufs.edu.cn{verify_code_url[0]}'verify_content = session.get(verify_url, headers=headers).content# 保存验证码图片with open('verify.jpg', 'wb') as f:f.write(verify_content)# 识别验证码verify_code = ca('verify.jpg')# print(verify_code)data = {'USERNAME': username,'PASSWORD': password,'RANDOMCODE': verify_code,}page_text_login = session.post(url=login_url, headers=headers, data=data).text# print(page_text_login)# 判断验证码是否识别成功即(是否登录成功)# 如果尝试次数到达10次就停止,防止因为用户误输密码或者学号而导致的死循环。if times >= 10:print('验证码识别错误或者密码或者学号错误。请检查密码或者学号,如无误请重新运行!')breakif "湖南强智科技教务系统" in page_text_login:print('模拟登录成功')print('======================================================')score_url = 'https://jxgl.gdufs.edu.cn/jsxsd/kscj/cjcx_list'check_score(score_url)breakelse:# 识别次数加1times += 1print('验证码识别错误')continue# 3. 查成绩
def check_score(score_url):resp = session.get(score_url, headers=headers)# re提取课程名称和分数name_re = re.compile(r'<td align="left">(.*?)</td>', re.S)name = re.findall(name_re, resp.text)name_list = []for i in range(1, len(name) + 1, 2):name_list.append(name[i])score_re = re.compile(r'<td style=".*?".*?">(.*?)</a></td>', re.S)score = re.findall(score_re, resp.text)for i in range(len(name_list)):print(name_list[i], score[i])resp.close()# 4. 主函数运行
if __name__ == '__main__':# 输入学号和密码while True:username = input('Please input you username: ')if len(username) != 11:print('Invalid username')continueelse:breakpassword = input('Please input your password: ')# 开始登录login(username, password)

广东外语外贸大学教务系统一键查分相关推荐

  1. 课程助理For Windows(预览版,正方教务系统学生查分工具)

    其实盖子已经开发了一个功能更强大的版本,但是那个版本依然基于正方系统,也就是说只要正方系统跪了或者张院士在网站上做点手脚,这个小工具就会失效. 今天给大家的版本虽然功能及其简单.界面极端丑陋,但是通过 ...

  2. 广东外语外贸大学计算机考研,广东外语外贸考研难度,2021考研广东外语外贸大学MTI会挤破头很难吗?...

    如果你想利用业余时间提升一下自己又没有好的选择,那么你可以看先关于下广东外语外贸考研难度.通过本文的2021考研广东外语外贸大学MTI会挤破头很难吗?,广东外语外贸大学新闻与传播专硕难度如何?,广东外 ...

  3. 计算机考研二外,广东外语外贸大学英语考研二外,广外考研二外英语难度如何?...

    如果你想利用业余时间提升一下自己又没有好的选择,那么你可以看先关于下广东外语外贸大学英语考研二外.通过本文的广东外语外贸大学,英语专业考研很难吗?,广外商务英语方向的考研考什么?二外?,广外考研二外英 ...

  4. 广外计算机学院在哪个校区,广东外语外贸大学有几个校区及校区地址 哪个校区最好...

    最近有许多考生和家长咨询小编,广东外语外贸大学有几个校区,今年新生会被分配到哪个校区?哪个校区好?等相关问题,下那么面小编统一回复一下考生们的问题. 广东外语外贸大学现在有个校区,分别为:校区和校区 ...

  5. 广东外语外贸大学计算机考研资料汇总

    广东外语外贸大学研招网 https://yz.gdufs.edu.cn/ 广东外语外贸大学(Guangdong University of Foreign Studies),位于广东省广州市,简称&q ...

  6. 2023广东外语外贸大学计算机考研信息汇总

    广东外语外贸大学研招网 https://yz.gdufs.edu.cn/ 广东外语外贸大学(Guangdong University of Foreign Studies),位于广东省广州市,简称&q ...

  7. 广东外语外贸大学南国商学院计算机,广东外语外贸大学南国商学院宿舍怎么样...

    大学宿舍是我们的第二个家,大学生活一天之中最少要有三分之二的时间在宿舍中度过,所以说,和谐融洽的寝室关系和良好的宿舍环境可以让我们愉快的度过四年大学生活.广东外语外贸大学南国商学院宿舍条件怎么样也就成 ...

  8. HZAU新版正方教务系统一键教学评价

    新的一轮教学评价又开始了,每门课要点十几次,课程多的话可能得点一两百次,想起去年有大佬做过自动评价的脚本,但不能用了,因为教务系统的代码有更改,而且不能全满分了,所以照着大佬的代码摸索了一下,改出了能 ...

  9. 教务系统一键评教案例分析

    本文中使用的教务系统是湖南强智 思路 1.登录取cookie 2.获得评教链接 3.获得评教接口 4.一键评教 1.登录 一般来讲登录有两种思路,分别是selenium模拟登录和接口登录,在分析过腾讯 ...

  10. Android正方教务系统课程表+查成绩+查考试安排

    超级课程表超慢的启动速度+5s广告+多余的无用功能+广告推送通知实属让人心烦 练手app,附加超级课程表没有的查询考试安排功能,考试成绩更加直观 (该项目很久不维护了,只提供思路,项目中url是学校教 ...

最新文章

  1. 盘点COVID-19新冠药物和疫苗研发进展
  2. js svg语音波动动画_SVG实现环形进度条的原理
  3. keras从入门到放弃(十二)卷积神经网络
  4. PHP中session特点及用途,PHP特点之会话机制2——Session及其使用
  5. 游戏中的实时光线追踪技术与技巧
  6. VUE如何操作DOM
  7. vue项目中使用JSX
  8. css --- 清除浮动
  9. sql alter表字段处理
  10. jmeter压测前清理内存
  11. 杭电计算机2013年硕士研究生复试详解
  12. 【渝粤教育】电大中专学前儿童社会教育作业 题库
  13. c++ public protected private 继承
  14. 关于 GBK编码表与编码字库
  15. 通过深度学习股价截面数据分析和预测股票价格
  16. 多个Excel文件合并到一个Excel文件的多个工作表(Sheet)里
  17. Cesium地形地貌加载
  18. 变量命名神器 CODELF
  19. SSR(服务端渲染)
  20. Errors were encountered while processing(Ubuntu系统报错)

热门文章

  1. 深度学习系列文章之一:电脑配置选择
  2. 高质量代码的几大标准
  3. Verilog语言要素(三)
  4. iOS 13越狱:越狱后如何安装AppSync和afc2越狱补丁
  5. python爬虫(十三)selenium(Selenium入门、chromedriver、Phantomjs)
  6. python求两个数的最大公约数穷举法_最大公约数GCD算法
  7. token与refresh token
  8. 好记性不如烂笔头之Maven使用小记
  9. SQLite用户权限
  10. 鼠标连接在计算机,鼠标怎么连接在电脑上