def video(cookies, v_log, each):
    if each[1] < 6 or each[4] < 10:
        driver_video = mydriver.Mydriver(nohead=nohead)
        driver_video.get_url("https://www.xuexi.cn/notFound.html")
        driver_video.set_cookies(cookies)
        links = get_links.get_video_links()
        try_count = 0
        while True:
            if each[1] < 6 and try_count < 10:
                v_num = 6 - each[1]
                for i in range(v_log, v_log + v_num):
                    driver_video.get_url(links[i])
                    time.sleep(random.randint(5, 15))
                    for j in range(180):
                        if random.random() > 0.5:
                            driver_video.go_js('window.scrollTo(0, document.body.scrollHeight/180*{})'.format(j))
                        print("\r视频学习中,视频剩余{}个,本次剩余时间{}秒".format(v_log + v_num - i, 180 - j), end="")
                        time.sleep(1)
                    driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                    total, each = show_score(cookies)
                    if each[1] >= 6:
                        print("检测到视频数量分数已满,退出学习")
                        break
                v_log += v_num
            else:
                with open("./user/{}/v_log".format(uname), "w", encoding="utf8") as fp:
                    fp.write(str(v_log))
                break
        try_count = 0
        while True:
            if each[4] < 6 and try_count < 10:
                num_time = 60
                driver_video.get_url(links[v_log-1])
                time.sleep(random.randint(5, 15))
                remaining = (6 - each[4]) * 3 * num_time
                for i in range(remaining):
                    if random.random() > 0.5:
                        driver_video.go_js(
                            'window.scrollTo(0, document.body.scrollHeight/{}*{})'.format(remaining, i))
                    print("\r视频学习中,视频总时长剩余{}秒".format(remaining - i), end="")
                    time.sleep(1)
                    if i % (180) == 0 and i != remaining:
                        total, each = show_score(cookies)
                        if each[4] >= 6:
                            print("检测到视频时长分数已满,退出学习")
                            break
                driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                total, each = show_score(cookies)
            else:
                break
        if try_count < 10:
            print("视频学习完成")
        else:
            print("视频学习出现异常,请检查用户名下v_log文件记录数")
        driver_video.quit()
    else:
        print("视频之前学完了")
Exemple #2
0
def watch_videos():
    """观看视频"""
    links = get_links.get_video_links()
    random.shuffle(links)
    i = 0
    for link in random.sample(links, 35):
        browser.get(link)
        browser.execute_script("var q=document.documentElement.scrollTop=500")
        time.sleep(random.randint(60, 75))
        i += 1
        print(i,time.ctime(time.time()),browser.title)
    print("播放视频完毕\n")
Exemple #3
0
def video(driver_video, v_log, myscores):
    # if each[1] < 6 or each[4] < 10:
    # if deach[1] < 2:
    if myscores['有效视听'] < myscores['有效视听目标'] or myscores['视听学习时长'] < myscores[
            '视听学习时长目标'] or myscores['视听学习'] < myscores['视听学习目标']:
        # driver_video = mydriver.Mydriver(nohead=nohead)
        # driver_video.get_url("https://www.xuexi.cn/notFound.html")
        # driver_video.set_cookies(cookies)
        links = get_links.get_video_links()
        try_count = 0
        lifetime = 0
        while True:
            # if each[1] < 6 and try_count < 10:
            # if deach[1] < 2 and try_count < 20:
            if myscores['有效视听'] < myscores['有效视听目标'] or myscores[
                    '视听学习'] < myscores['视听学习目标'] and try_count < 10:
                # v_num = 6 - each[1]
                # v_num = 20 - deach[1]*10-deach[4]%10 # 检查点点通还差多少条
                # 检查点点通还差多少条
                # v_num_total = min(myscores['有效视听目标'] - myscores['有效视听'], 12)
                # v_num = min(random.randint(8, 12), v_num_total)
                v_num = min(myscores['有效视听目标'] - myscores['有效视听'], 12)
                for i in range(v_log, v_log + v_num):
                    driver_video.get_url(links[i])
                    if not driver_video.get_title() == '系统维护中':
                        print(i, driver_video.get_title())
                        time.sleep(random.randint(2, 5))
                        # 学习时长
                        # t = random.randint(45, 60)
                        t = (myscores['视听学习时长目标'] - myscores['视听学习时长']
                             ) * 3 * 60 // v_num  # v_num_total
                        if t < 16:
                            t = random.randint(10, 15)
                        else:
                            t = random.randint(t - 2, t + 5)
                        t = random.randint(t - 10, t + 10)
                        # print("时长是:{}".format(t))
                        lifetime += t
                        for j in range(t):
                            if random.random() > 0.5:
                                driver_video.go_js(
                                    'window.scrollTo(0, (document.body.scrollHeight-800)/{}*{})'
                                    .format(t, j))
                            print("\r视频学习中,视频剩余{}个,本次时长{}秒,剩余时间{}秒".format(
                                v_log + v_num - i, t, t - j - 1),
                                  end="")
                            time.sleep(1)
                        print('')  # lou
                        # driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                myscores.update(show_scorenew(driver_video))
                # if each[1] >= 6:
                # if deach[1] >= 2:
                '''
                if myscores['有效视听'] >= myscores['有效视听目标'] and myscores['视听学习'] >= myscores['视听学习目标']:
                    print("检测到视频数量分数已满,退出学习")
                    break
                '''
                v_log += v_num
            else:
                with open("./user/{}/v_log".format(myscores['userId']),
                          "w",
                          encoding="utf8") as fp:
                    fp.write(str(v_log))
                print("检测到视频数量分数已满,退出学习")
                break

        try_count = 0
        while True:
            if myscores['视听学习时长'] < myscores['视听学习时长目标'] and try_count < 10:
                num_time = 60
                driver_video.get_url(links[v_log - 1])
                time.sleep(random.randint(2, 5))
                remaining = (myscores['视听学习时长目标'] -
                             myscores['视听学习时长']) * 3 * num_time
                print("剩下时长是:{}".format(remaining))
                lifetime += remaining
                for i in range(remaining):
                    if random.random() > 0.5:
                        driver_video.go_js(
                            'window.scrollTo(0, (document.body.scrollHeight-1000)/{}*{})'
                            .format(remaining, i))
                    print("\r视频学习中,视频总时长剩余{}秒".format(remaining - i - 1),
                          end="")
                    time.sleep(1)
                    '''
                    if i % (180) == 0 and i != remaining:
                        total, each, dtotal, deach, myscores = show_score(driver_video.get_cookies())
                        if myscores['视听学习时长'] >= timetarget:
                            print("检测到视频时长分数已满,退出学习")
                            break
                    '''
                print('')
                # driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                myscores.update(show_scorenew(driver_video))
            else:
                print("检测到视频时长分数已满,退出学习")
                break

        if try_count < 10:
            print("视频学习完成")
        else:
            print("视频学习出现异常,请检查用户名下v_log文件记录数")
        # driver_video.quit()
        print("视频学习共用时长:{}".format(lifetime))
    else:
        print("视频之前学完了")
Exemple #4
0
def video(driver_video, v_log, myscores):
    # if each[1] < 6 or each[4] < 10:
    # if deach[1] < 2:
    if myscores['有效视听'] < myscores['有效视听目标'] or myscores['视听学习时长'] < myscores['视听学习时长目标'] or myscores['视听学习'] < myscores['视听学习目标']:
        # driver_video = mydriver.Mydriver(nohead=nohead)
        # driver_video.get_url("https://www.xuexi.cn/notFound.html")
        # driver_video.set_cookies(cookies)
        links = get_links.get_video_links()
        try_count = 0
        lifetime = 0
        while True:
            # if each[1] < 6 and try_count < 10:
            # if deach[1] < 2 and try_count < 20:
            if myscores['有效视听'] < myscores['有效视听目标'] or myscores['视听学习'] < myscores['视听学习目标'] and try_count < 10:
                # v_num = 6 - each[1]
                # v_num = 20 - deach[1]*10-deach[4]%10 # 检查点点通还差多少条
                # 检查点点通还差多少条
                # v_num_total = min(myscores['有效视听目标'] - myscores['有效视听'], 12)
                # v_num = min(random.randint(8, 12), v_num_total)
                v_num = min(myscores['有效视听目标'] - myscores['有效视听'], 12)
                for i in range(v_log, v_log + v_num):
                    driver_video.get_url(links[i])
                    if not '维护' in driver_login.in_driver().find_element_by_id('content').text:
                        print(i, driver_video.get_title())
                        # time.sleep(random.randint(2, 5))
                        # 学习时长
                        video_time = driver_login.in_driver().find_element_by_css_selector('span.duration').get_attribute('innerText') #获取隐藏元素的文本信息 使用get_attribute()方法,通过textContent、innerText、innerHTML等属性获取。
                        timeArray = time.strptime(video_time, "%M:%S")
                        t = timeArray.tm_min * 60 + timeArray.tm_sec
                        # t = random.randint(45, 60)
                        t = (myscores['视听学习时长目标'] - myscores['视听学习时长']) * 3 * 60 // v_num  # v_num_total
                        if t < 16:
                            t = random.randint(10, 15)
                        else:
                            t = random.randint(t-2, t+8)
                        t = random.randint(15, 45)
                        # print("时长是:{}".format(t))
                        lifetime += t
                        driver = driver_video.in_driver()
                        driver.find_element_by_css_selector('div.prism-big-play-btn').click()
                        for j in range(t):
                            if random.random() > 0.5:
                                driver_video.go_js('window.scrollTo(0, (document.body.scrollHeight-800)/{}*{})'.format(t, j))
                            print("\r视频学习中,视频剩余{}个,本次时长{}秒,剩余时间{}秒".format(v_log + v_num - i, t, t - j-1), end="")
                            time.sleep(1)
                        print('') # lou
                        # driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                myscores.update(show_scorenew(driver_video))
                # if each[1] >= 6:
                # if deach[1] >= 2:
                '''
                if myscores['有效视听'] >= myscores['有效视听目标'] and myscores['视听学习'] >= myscores['视听学习目标']:
                    print("检测到视频数量分数已满,退出学习")
                    break
                '''
                v_log += v_num
            else:
                with open("./user/{}/v_log".format(myscores['userId']), "w", encoding="utf8") as fp:
                    fp.write(str(v_log))
                print("检测到视频数量分数已满,退出学习")
                break

        try_count = 0
        while True:
            if myscores['视听学习时长'] < myscores['视听学习时长目标'] and try_count < 10:
                num_time = 60
                driver_video.get_url(links[v_log-1])
                # time.sleep(random.randint(2, 5))
                remaining = random.randint(15, 30)
                remaining += (myscores['视听学习时长目标'] - myscores['视听学习时长'] - 1) * 3 * num_time
                print("剩下时长是:{}".format(remaining))
                lifetime += remaining
                driver = driver_video.in_driver()
                driver.find_element_by_css_selector('div.prism-big-play-btn').click()
                for i in range(remaining):
                    if random.random() > 0.5:
                        driver_video.go_js(
                            'window.scrollTo(0, (document.body.scrollHeight-1000)/{}*{})'.format(remaining, i))
                    print("\r视频学习中,视频总时长剩余{}秒".format(remaining - i - 1), end="")
                    time.sleep(1)

                    '''
                    if i % (180) == 0 and i != remaining:
                        total, each, dtotal, deach, myscores = show_score(driver_video.get_cookies())
                        if myscores['视听学习时长'] >= timetarget:
                            print("检测到视频时长分数已满,退出学习")
                            break
                    '''
                print('')
                # driver_video.go_js('window.scrollTo(0, document.body.scrollHeight)')
                myscores.update(show_scorenew(driver_video))
            else:
                print("检测到视频时长分数已满,退出学习")
                break

        if try_count < 10:
            print("视频学习完成")
        else:
            print("视频学习出现异常,请检查用户名下v_log文件记录数")
        # driver_video.quit()
        print("视频学习共用时长:{}".format(lifetime))
    else:
        print("视频之前学完了")
def video(userId, cookies, video_pointer, scores):
    try:
        if scores["video_num"] < const.video_num_all or scores[
                "video_time"] < const.video_time_all:
            # driver_video = Mydriver(nohead=nohead)
            driver_video = Mydriver(nohead=True)
            # def video_stop_function():
            #     driver_video.quit()
            # threads.regist_stop_function(video_stop_function)
            driver_video.get_url("https://www.xuexi.cn/notFound.html")
            driver_video.set_cookies(cookies)
            links = get_links.get_video_links()
            try_count = 0
            watchvideo_time = 0
            while True:
                if scores["video_num"] < const.video_num_all and try_count < 10:
                    v_num = const.video_num_all - scores["video_num"]
                    for i in range(video_pointer, video_pointer + v_num):
                        driver_video.get_url(links[i])
                        watchvideo_time = 60 + random.randint(5, 15)
                        for j in range(watchvideo_time):
                            if random.random() > 0.5:
                                driver_video.go_js(
                                    'window.scrollTo(0, document.body.scrollHeight/180*{})'
                                    .format(j))
                            print("\r视频数量学习中,视频剩余{}个,本次剩余时间{}秒".format(
                                video_pointer + v_num - i,
                                watchvideo_time - j),
                                  end="")
                            time.sleep(1)
                        driver_video.go_js(
                            'window.scrollTo(0, document.body.scrollHeight)')
                        total, scores = show_score(cookies)
                        if scores["video_num"] >= const.video_num_all:
                            print("检测到视频数量分数已满,退出学习")
                            break
                    video_pointer += v_num
                else:
                    user.save_video_index(userId, video_pointer)
                    break
            try_count = 0
            while True:
                if scores[
                        "video_time"] < const.video_time_all and try_count < 10:
                    num_time = 60
                    driver_video.get_url(links[video_pointer - 1])
                    remaining = (const.video_time_all -
                                 scores["video_time"]) * 1 * num_time
                    for i in range(remaining):
                        if random.random() > 0.5:
                            driver_video.go_js(
                                'window.scrollTo(0, document.body.scrollHeight/{}*{})'
                                .format(remaining, i))
                        print("\r视频时长学习中,视频总时长剩余{}秒".format(remaining - i),
                              end="")
                        time.sleep(1)
                        if i % (60) == 0 and i != remaining:
                            total, scores = show_score(cookies)
                            if scores["video_time"] >= const.video_time_all:
                                print("检测到视频时长分数已满,退出学习")
                                break
                    driver_video.go_js(
                        'window.scrollTo(0, document.body.scrollHeight)')
                    total, scores = show_score(cookies)
                else:
                    break
            if try_count < 10:
                print("视频学习完成")
            else:
                print("视频学习出现异常,请检查 user/article_video_index.json 文件记录")
            driver_video.quit()
        else:
            print("视频之前学完了")
    except Exception as e:
        print(color.red("视频学习检测到异常:" + str(e)))