2021新版本智慧树刷课代码脚本
2021刷课新版脚本代码,本文分享最新版智慧树知到刷课浏览器,供大家免费下载使用
先上链接:https://share.weiyun.com/Ta2hXuz9,下载后可直接使用
贴上代码,供懂技术的朋友参考:
我用的是谷歌浏览器,[驱动下载地址](http://chromedriver.storage.googleapis.com/index.html)
需要下载跟浏览器对应版本 的。
我用的是:80.0.3987.106
其中登录使用微信登录,因为账号密码方式登录会被检测到,目前不知道怎么解决。可以参考:[selenium爬虫被检测到 该如何破?](selenium爬虫被检测到 该如何破?)
代码已经写了很详细的注释了。这里就不多啰嗦。
已经写了1.3版本,更加方便
修复了不能跳转下一节的问题,
增加获取课程列表
代码如下:
fromseleniumimportwebdriverimporttimeimportthreadingdeflogin(): 设置登录连接url ="https://passport.zhihuishu.com/login?service=https://onlineservice.zhihuishu.com/login/gologin" 进入指定链接driver.get(url) 点击微信登录print("请在30秒内登录。否则将会退出程序。")try:driver.find_element_by_class_name("signin-way-shjiaoyu").click()except:print("调用微信登录失败")driver.quit()foriinrange(1,30,1):print("用时:"+ str(i))time.sleep(1)if(i<30):try:driver.find_element_by_xpath("//[@id=&9;app&9;]/div[1]/div[3]/div[2]/div[2]/div[1]/ul[1]/li[2]/p[1]").get_attribute("textContent")print("微信登录成功,计时退出")breakexcept:passelse:driver.quit() 获取各种信息classObtain: 获取姓名defobtain_name(self):name = driver.find_element_by_xpath("//[@id=&9;app&9;]/div[1]/div[3]/div[2]/div[2]/div[1]/div[1]/div[1]/p[1]").get_attribute("textContent")print("嗨! "+ name +" 你好。") 获取课程数以及课程名defCourse_number(self):print("获取课程中……")time.sleep(3) 获取几门课程number = driver.find_element_by_xpath("//[@id=&9;app&9;]/div[1]/div[3]/div[2]/div[2]/div[1]/ul[1]/li[2]/p[1]").get_attribute("textContent")print("您一共选择了:"+ number +"门课程。") 获取课程名称foriinrange(1, int(number)+1):path ="//[@id=&9;sharingClassed&9;]/div[2]/ul["+ str(i) +"]/div[1]/dl[1]/dt[1]/div[1]"Course_name = driver.find_element_by_xpath(path).get_attribute("textContent")print(str(i) +" "+ Course_name)print("-"25)print("\n") 进入视频页definto(num):print("进入视频中")try:driver.find_element_by_xpath("//[@id=&9;sharingClassed&9;]/div[2]/ul["+str(num)+"]/div[1]/dl[1]/dt[1]/div[1]").click()except:print("进入失败,正在重新进入")try:time.sleep(3)driver.get("https://onlineh5.zhihuishu.com/onlineWeb.html/studentIndex")time.sleep(3)driver.find_element_by_xpath("//[@id=&9;sharingClassed&9;]/div[2]/ul["+ str(num) +"]/div[1]/dl[1]/dt[1]/div[1]").click()except:print("第二次进入失败")driver.quit() 关闭课前提示defclose():try:time.sleep(3)driver.find_element_by_xpath(&9;/html/body/div[1]/div/div[6]/div/div[1]/button&9;).click()print("关闭我知道了成功")except:pass 关闭学前须知try:time.sleep(1)driver.find_element_by_xpath(&9;/html/body/div[1]/div/div[7]/div[2]/div[1]/i&9;).click()print("关闭学前须知成功")except:pass 设置基础defset(): 设置画面质量try:time.sleep(1)driver.execute_script(&9;document.querySelector("vjs_container > div.controlsBar > div.definiBox > div > b.line1bq.switchLine").click()&9;) 设置流畅print("设置流畅成功")except:print("设置流畅失败") 设置倍速try:time.sleep(1)driver.execute_script(&9;document.querySelector("vjs_container > div.controlsBar > div.speedBox > div > div.speedTab.speedTab10").click()&9;) 1.25倍print("设置1.25倍成功")except:print("设置1.25倍失败") 设置静音try:time.sleep(1)driver.find_element_by_xpath(&9;//[@id="vjs_container"]/div[10]/div[6]&9;).click()print("设置静音成功")except:print("设置静音失败") 关闭弹窗defClose_Popup():print("弹窗检测中")while(True):try:time.sleep(5)driver.find_element_by_class_name("topic-item").click() 点击第一个答案driver.find_element_by_xpath(&9;/html/body/div[1]/div/div[7]/div/div[3]/span/div&9;).click() 点击关闭time.sleep(2)driver.execute_script(&9;document.querySelector("playButton").click()&9;) 点击播放print("关闭弹窗成功")except:pass 跳转下一节defplay_next():print("下一集检测中")time.sleep(5) 总时间total_time = driver.find_element_by_xpath(&9;//[@id="vjs_container"]/div[10]/div[4]/span[2]&9;).get_attribute(&9;textContent&9;) 章节chapter = driver.find_element_by_id("lessonOrder").get_attribute(&9;textContent&9;)print("正在观看:"+ chapter +" 本节视频总时长:"+ total_time)while(True):time.sleep(5)total_time = driver.find_element_by_xpath(&9;//[@id="vjs_container"]/div[10]/div[4]/span[2]&9;).get_attribute(&9;textContent&9;)current_time = driver.find_element_by_xpath(&9;//[@id="vjs_container"]/div[10]/div[4]/span[1]&9;).get_attribute(&9;textContent&9;)print(current_time)ifcurrent_time == total_time:print(&9;本节视频播放完成,正在播放下一节&9;)try:driver.execute_script("document.querySelector(&9;nextBtn&9;).click()") 当前视频播放结束,点击下一节time.sleep(3)set()except:print("切换下一节失败,正在重试")time.sleep(2)driver.execute_script("document.querySelector(&9;nextBtn&9;).click()") 当前视频播放结束,点击下一节if__name__ ==&9;__main__&9;:print("智慧树自动看课系统V1.3启动成功")driver = webdriver.Chrome()print("浏览器启动") 登录login() 创建类实例obtain = Obtain() 调用姓名,课程号obtain.obtain_name()obtain.Course_number() 输入编号num = input("请输入序号进行刷课:")into(num) 关闭我知道了close() 设置流畅set() 关闭弹窗poput = threading.Thread(target=Close_Popup) 跳转下一节next = threading.Thread(target=play_next)poput.start()next.start()