强智教务自动刷新教务处成绩,更新后发邮件通知,以某ECUST华理为例子。此处的ECUST华理教务系统是18年9月后的新系统
Windows端或者挂在阿里云上都可以,下文示例是在Ubuntu上运行的。
这代码是拿某ECUST教务系统测试的,如果是其他学校的强智教务系统自己改一下,有可能页面元素的id,xpath什么的不一定相同。
- 安装好Chrome和Chromedriver,此处就不放教程了
- 安装好selenium这个包
- 如果想邮箱收到成绩更新通知就提前弄好smtp授权码等等,我这个代码用的qq邮箱发送的,如果是其他邮箱的话记得改端口
- 代码如下:
# -*- coding: utf-8 -*-
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.ui import Select
import random
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--no-sandbox")
class Chachengji(object):
username = u"1018230x" # 填你的学号
passwd = u"xxxxx" #填你的密码
xueqi = '2018-2019-2' #你想查哪个学期的成绩,注意格式正确
_user = "xxxxxxxxx@qq.com" # 你获得授权码的邮箱
_pwd = "xxxxxxxx" # 授权码
_to = "xxxxxxxx@qq.com" # 成绩更新后发邮件到哪个邮箱
login_url = "http://inquiry.ecust.edu.cn/jsxsd/" # 登录页
afterlogin_url = 'http://inquiry.ecust.edu.cn/jsxsd/framework/xsMain.jsp' # 登录后跳转到的页面
kscj_url = "http://inquiry.ecust.edu.cn/jsxsd/kscj/cjcx_query" # 查成绩的页面,注意是要可以选学期的那个页面,不是学生成绩卡
old = set(['线性代数',
'物理与现代科技',
'体育(2)',
'军事理论',
'Python程序设计',
'中国文化概论(MOOC)',
'大学生职业生涯规划与管理',
'高等数学(下)',
'大学英语Ⅱ',
'新生心理健康教育',
]) # 用来存放已经出成绩了的科目的集合
def __init__(self):
prin