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("视频之前学完了")
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")
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("视频之前学完了")
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)))