diff --git a/__pycache__/get_info.cpython-310.pyc b/__pycache__/get_info.cpython-310.pyc index 950e5ec..0fb95b6 100644 Binary files a/__pycache__/get_info.cpython-310.pyc and b/__pycache__/get_info.cpython-310.pyc differ diff --git a/demo.py b/demo.py index 6e12363..38451ce 100644 --- a/demo.py +++ b/demo.py @@ -1,8 +1,20 @@ -from collections import * -import json -info = json.load(open('course_info.json','r')) -cnt = Counter(info[k]['type'] for k in info.keys()) -print(cnt) -cnt['必修'] = 1 -less_10 = [k for k, v in cnt.items() if v < 10] -print(less_10) \ No newline at end of file +from DrissionPage import ChromiumPage +from DrissionPage.common import * +from loguru import logger +import subprocess +from get_info import login +# page = ChromiumPage() +# page.get('http://hnqmgc.17el.cn/') +# try: +# if page.ele('@onclick=cha()',timeout=3): +# page.ele('@onclick=cha()').click() +# # +# elif page.ele('tag:img@@style=width: 25px;height: 25px;',timeout=3): +# page.ele('tag:img@@style=width: 25px;height: 25px;').click() +# except BaseException: +# logger.error('不能进入课程页面') +# subprocess.run(["python", __file__]) +# exit() +# page.ele('tag:a@@text():青马课堂').hover() +# page.ele('tag:a@@text():全部').click().for_new_tab() +login(first=True,init=True) \ No newline at end of file diff --git a/get_info.py b/get_info.py index 6ffd5f2..96fdd42 100644 --- a/get_info.py +++ b/get_info.py @@ -5,10 +5,14 @@ import time import json from loguru import logger import subprocess +from typing import * # http://hnqmgc.17el.cn/grzx/ # 单独实现登录操作 -def login(first:bool=True): +def get_into_center(cpage:ChromiumPage): + cpage.ele('#login_btn').click() + cpage.ele('@value=进入个人中心').click() +def login(first:bool=True,init:bool=False): if not first: return # 先检查当前页面是否已经登录 @@ -48,8 +52,8 @@ def login(first:bool=True): logger.error('不能进入课程页面') subprocess.run(["python", __file__]) exit() - page.ele('#login_btn').click() - page.ele('@value=进入个人中心').click() + if not init: + get_into_center(page) def get_info(first:bool=True): # 创建页面对象,并启动或接管浏览器 page = ChromiumPage() diff --git a/initialization.py b/initialization.py index 0da9989..7ef9024 100644 --- a/initialization.py +++ b/initialization.py @@ -11,25 +11,51 @@ import time from loguru import logger from get_info import get_info from collections import * +from get_info import login -# 读取课程数量信息 -get_info() -class_info = json.load(open('course_info.json','r')) -# 读取各个类别的课程数量 -cnt = Counter(class_info[k]['type'] for k in class_info.keys()) -# 检测是否存在小于10的课程数量 -less_10 = [k for k, v in cnt.items() if v < 10] -def click_videoes(): +def click_videoes(study_type:str) -> None: ''' - 进入首页,逐个点击相应视频,每个视频页面停留3秒后推出,并进入下一个视频。 + study_type:只能在如下选项中选择 + 1、入党积极分子 + 2、网络文明志愿者 + 3、团学干部 + 4、大学生心理健康教育 ''' - pass -if not less_10: - # 直接进行刷课和检测 - pass -else: + # 由于各位学员的培训种类不同,这里交给用户输入 + + # 必修,选修,专栏学习是每人都要学习的,统一处理 + def must_study(): + pass + def elective_study(): + pass + def column_study(): + pass + + +# 读取课程数量信息 +def init(): ''' - 回到首页,逐个点击相应视频,每个视频页面停留3秒后推出,并进入下一个视频。 - 结束调用get_info()函数,更新课程数量信息 + 初始化,检测是否需要进入视频一次页以及进行进入视频一次页操作 ''' - pass + # 获取课程数量信息 + get_info() + class_info = json.load(open('course_info.json','r')) + # 读取各个类别的课程数量 + cnt = Counter(class_info[k]['type'] for k in class_info.keys()) + # 检测是否存在小于10的课程数量 + less_10 = [k for k, v in cnt.items() if v < 10] + if not less_10: + # 直接进行刷课和检测 + return + else: + ''' + 回到首页,逐个点击相应视频,每个视频页面停留3秒后推出,并进入下一个视频。 + 结束调用get_info()函数,更新课程数量信息 + ''' + # 接管当前页面 + page = ChromiumPage() + # 进入青马课堂页 + login(first=True,init=True) + page.ele('tag:a@@text():青马课堂').hover() + page.ele('tag:a@@text():全部').click().for_new_tab() + click_videoes() \ No newline at end of file