python | 实现shua课系统

import threading
import time
import datetime
import schedule

from selenium import webdriver
chrome_driver=r"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/chrome/chromedriver"
browser=webdriver.Chrome(executable_path=chrome_driver)

# 请求登陆页面
browser.get('访问页面url')


# 登陆
def login(number, password):
    phone_name = browser.find_element_by_id('login')  # 通过id定位,手机号码
    phone_name.click()
    phone_number = browser.find_element_by_id('uname')  # 通过id定位,账号
    pwd = browser.find_element_by_id('pwd')  # 密码
    login_btn = browser.find_element_by_id('loginBypwdBtn')  # 登陆按钮

    phone_number.send_keys(number)  # 输入手机号码或账号密码
    pwd.send_keys(password)  # 输入密码
    login_btn.click()  # 点击登陆按钮
    time.sleep(3)
    xuexi = browser.find_element_by_class_name('button')  # 定位进入学习按钮
    xuexi.click()  # 点击学习按钮
    time.sleep(3)


# 转到播放视频页面
def to_course():

    for i in range(1,49):
        # 获取当前时间
        time.sleep(3)
        browser.get('https://degree.qingshuxuetang.com/gd/Student/CourseShow?teachPlanId=310&periodId=13&courseId=839&cw_nodeId=kcjs_%s'%(i))
        video = browser.find_element_by_id('playerContainer')  # 定位视频窗口
        video.click()  # 点击播放
        time.sleep(3600)
schedule.every(1).minutes.do(to_course)

        # if datetime.datetime.now()== datetime.datetime.now()+datetime.timedelta(hours=1):
            # 当前视频播放结束,点击下一节
            # js = "document.ElementById('nextBtn').click()"  # js脚本
            # browser.execute_script(js)
            # if i ==49:
            #     pass
            #     return

#         try:
#             video = browser.find_element_by_id('playerContainer')  # 定位视频窗口
#             video.click()  # 点击播放
#         except:
#             pass
#
#         try:
#             # video = browser.find_element_by_id('mediaplayer')  # 定位视频窗口
#             # 获取当前播放的进度
#             current_time = browser.find_element_by_class_name('timetextchpsuydshice').get_attribute('textContent')
#             print(current_time,33333333333333333333)
#             textContent=current_time.split()
#             if textContent[0] == textContent[1]:
#                 # 当前视频播放结束,点击下一节
#                 # js = "document.ElementById('nextBtn').click()"  # js脚本
#                 # browser.execute_script(js)
#                 res =False
#                 time.sleep(10)  # 10秒检测一次
#
#         except:
#             current_time = '00:00'
#             total_time = '00:01'
#
#         if i ==3:
#             break

    # current = browser.current_window_handle  # 当前页面的句柄
    # key = browser.find_element_by_partial_link_text(key)  # 找到课程
    # key.click()  # 跳转到播放视频页面
    # time.sleep(1)  # 等待页面加载
    # # 因为跳转到新的页面,所以browser要切换到新的页面操作
    # handles = browser.window_handles
    # for handle in handles:
    #     if handle != current:
    #         browser.switch_to.window(handle)

    # time.sleep(10)
    # try:
    #     video = browser.find_element_by_id('mediaplayer')  # 定位视频窗口
    #     video.click()  # 点击播放
    # except:
    #     pass


# 判断是否有答题窗口弹出
# def is_exist():
#     while True:
#         try:
#             browser.switch_to.default_content()
#             browser.switch_to.frame('tmDialog_iframe')  # 答题窗口在另一个frame里面,要切换
#             box = browser.find_elements_by_class_name('answerOption')  # 答题列表
#             radio = box[0].find_element_by_tag_name('input')  # 找到第一个选项
#             radio.click()  # 选择
#             browser.switch_to.default_content()
#             browser.find_element_by_link_text('关闭').click()  # 关闭答题窗口
#
#         except:
#             browser.switch_to.parent_frame()  # 没有弹出,切换回本来的frame
#             time.sleep(5)

# 判断当前视频是否结束
# def is_end():
#     while True:
#         try:
#             video = browser.find_element_by_id('mediaplayer')  # 定位视频窗口
#             # 获取当前播放的进度
#             current_time = video.find_element_by_class_name('currentTime').get_attribute('textContent')
#             # 该视频的总时间
#             total_time = video.find_element_by_class_name('duration').get_attribute('textContent')
#             print(current_time, total_time)
#             if current_time == total_time:
#                 # 当前视频播放结束,点击下一节
#                 js = "document.ElementById('nextBtn').click()"  # js脚本
#                 browser.execute_script(js)
#
#                 time.sleep(10)  # 10秒检测一次
#
#         except:
#             current_time = '00:00'
#             total_time = '00:01'

if __name__ == '__main__':
    '''
     number=''#手机号码
     password=''#密码
    key=''#课程名称,可以部分名字
           
     '''
    login("账号", "密码")
    to_course()
    # 开两个线程
    # t1 = threading.Thread(target=is_exist)
    # t2 = threading.Thread(target=is_end)
    # t2.start()
    # time.sleep(3)
    # t1.start()
    # t2.join()
    # t1.join()

猜你喜欢

转载自www.cnblogs.com/huangjiangyong/p/12497299.html