def checkHomework():
status = "未完成作业概览:\n"
courses = getDataUrl()
allTodoWork = []
for name in courses:
url = courses[name]
homework = requests.get(url, headers=headers).text
soup = BeautifulSoup(homework, 'lxml')
work = soup.find_all('li')
for i in range(len(work)):
if work.div.span.string == "未交" and work.find('span', class_='fr') is not None:
# status = status + '\n' + name + '\n'
restTime = work.find('span', class_='fr').string
# 剩余具体小时数
restHour = re.findall(r"剩余(.+?)小时", restTime)
# 剩余多出来的分钟数
restMinute = re.findall(r"小时(.+?)分钟", restTime)
# 当前时间加上剩余小时
endTime1 = datetime.datetime.now() + datetime.timedelta(hours=int(restHour[0]))
# 最后加上分钟数即可算出具体的截止时间
endTime2 = endTime1 + datetime.timedelta(minutes=int(restMinute[0]))
# 当前作业状态
workStatus = '\n' + name + '\n' + work[
i].div.p.string + '\n' + restTime + '\n' + '截止时间:' + endTime2.strftime(
"%Y-%m-%d %H:%M:%S") + '\n'
allTodoWork.append(workStatus)
# 重新排序,时间截止日期近的排在前面
allTodoWork.sort(key=lambda t: int(re.findall(r"剩余(.+?)小时", t)[0]))
for i in range(len(allTodoWork)):
status = status + allTodoWork
print(status)
# payload = {'text': '作业未完成通知', 'desp': status}
# requests.post(ftqqUrl, params=payload)
body = {
"appToken": appToken,
"content": status,
"summary": "",
"contentType": 1,
"topicIds": [],
"uids": ["在这里需要输入你的wxpusher的UID"],
}
requests.post(wxurl, headers=wx_header, data=json.dumps(body))
# 获取所有本学期内的课程名及对应url
def getDataUrl():
allCourse = requests.get(getAllCourseDataUrl, headers=headers).text
allCourseJson = json.loads(allCourse)
channelList = allCourseJson['channelList']
cpi = ''
for c in range(len(channelList)):
# 获取最近添加的课程的cpi,使用该cpi来判断其它课程是否为本学期的
if 'cpi' in channelList[c]:
cpi = channelList[c]['cpi']
break
realCourse = []
finalCourseData = {}
for i in range(len(channelList)):
if 'cpi' in channelList and channelList['cpi'] == cpi:
realCourse.append(channelList['content']['course']['data'][0])
包抓到了,但是测试后出现错误,头疼。
"errorCode":1,"errorMessage":"Traceback (most recent call last):\n File \"/var/runtime/python3/bootstrap.py\", line 133, in init_handler\n func_handler = get_func_handler(file.rsplit(\".\", 1)[0], func)\n File \"/var/runtime/python3/bootstrap.py\", line 159, in get_func_handler\n mod = imp.load_module(mname, *imp.find_module(mname))\n File \"/var/lang/python3/lib/python3.6/imp.py\", line 234, in load_module\n return load_source(name, filename, file)\n File \"/var/lang/python3/lib/python3.6/imp.py\", line 172, in load_source\n module = _load(spec)\n File \"Ϗrozen; importlib._bootstrap>\", line 675, in _load\n File \"Ϗrozen; importlib._bootstrap>\", line 655, in _load_unlocked\n File \"Ϗrozen; importlib._bootstrap_external>\", line 678, in exec_module\n File \"Ϗrozen; importlib._bootstrap>\", line 205, in _call_with_frames_removed\n File \"/var/user/index.py\", line 9, in <module;>\n ftqqUrl = \"https://sc.ftqq.com/%s.send\" % (sckey)\nNameError: name 'sckey' is not defined","requestId":"4c1bf620-4cd3-4537-80cc-d8a10cb3f8f1","statusCode":443}