selenium自动化看网课

selenium是一个用于测试网站的自动化测试工具,它拥有模拟点击和输入数据等功能。这里我用selenium的模拟点击功能写一个看网课的测试代码,这里以学习通作为测试网址。还有很多不足的地方,希望以后的学习中可以解决。

一、导入必要模块

导入time模块设置休眠时间,导入selenium的webdriver模块模拟点击

from selenium import webdriver #从selenium库中调用webdriver模块
import time

二、设置引擎,打开网页

由于我没有将chromedriver.exe加入环境变量,因此在webdriver.Chrome中加入chromedriver.exe的路径

driver = webdriver.Chrome(executable_path = 'F:\chromedriver\chromedriver.exe') # 设置引擎为Chrome,真实地打开一个Chrome浏览器(把Chrome浏览器设置为引擎,然后赋值给变量driver。driver是实例化的浏览器)
driver.get('http://i.mooc.chaoxing.com') # 打开网页
driver.maximize_window() #浏览器最大化
time.sleep(1)

运行之后网页就打开了,这时我们就需要寻找三个输入框的位置传入自己的账号密码以及验证码。

三、传入信息模拟登陆

这里我通过xpath寻址找到输入框的位置,并用send_keys()方法传入对应的信息,然后在登陆键用click()模拟点击

user = 'xxxxxxxxx'
password = 'xxxxxxx'
log = driver.find_element_by_xpath('//*[@id="unameId"]')
log.send_keys(user)password = driver.find_element_by_xpath('//*[@id=\"passwordId\"]')
password.send_keys(password)#输入验证码
x = input('Numcode: ')
numcode = driver.find_element_by_xpath('//*[@id="numcode"]')
numcode.send_keys(str(x))
driver.find_element_by_xpath('//*[@id=\"form\"]/table/tbody/tr[7]/td[2]/label/input').click() #点击登录

输入验证码后回车就能进入学习通

四、找到要看网课的课程并进入


按Ctrl+F输入iframe发现这个页面在嵌套页中,因此我们需要先找到iframe位置,这里为//*[@id=“frame_content”],进入后再寻找对应课程的位置。注意,不进入嵌套页直接寻找课程位置会点击无反应。点击完之后我们通过driver.switch_to.default_content()退出嵌套,不然会影响后续寻址。

#进入嵌套
old = driver.current_window_handle
xf = driver.find_element_by_xpath('//*[@id="frame_content"]')
driver.switch_to.frame(xf)
new = driver.current_window_handle
driver.find_element_by_xpath('/html/body/div/div[2]/div[3]/ul/li[9]/div[2]/h3/a').click() #进入课程
#退出嵌套
driver.switch_to_window(driver.window_handles[1])
driver.switch_to.default_content()

运行后就会打开我们的课程

五、进入网课视频页面

选定第一个看的网课并点击进入

time.sleep(1)
driver.find_element_by_xpath('//*[@id="434568557"]/h3[4]/a/span[2]').click() #点击开头课程

六、寻找播放键和下一章按钮


通过查看可以知道整个页面在iframe嵌套页,并且播放键在嵌套页中嵌套页中,因此要进入两层嵌套

这里建议用Ctrl+F输入“播放”来查找,因为不能直接右键视频来检查,播放键的按钮要打开很多小标签才能找到。

同理可以用这个方法找到下一章的按钮
由于我没有找视频播放时间和已经的播放时间,因此用睡眠10分钟来切换下一章

def start():#两层嵌套one = driver.find_element_by_xpath('//*[@id="iframe"]')driver.switch_to.frame(one)start = driver.find_element_by_xpath('//*[@id="ext-gen1041"]/div/div/p/div/iframe')driver.switch_to.frame(start)driver.find_element_by_xpath('//*[@id="video"]/button').click() #播放视频键#退出嵌套driver.switch_to_window(driver.window_handles[1])driver.switch_to.default_content()time.sleep(360)driver.find_element_by_xpath('//*[@id="mainid"]/div[1]/div[2]').click() #点击下一章time.sleep(1)
for i in range(6):print("正在观看第{}章".format(i+1))start()time.sleep(2)
print("观看完成")
driver.close()

我本想用这个方法来确定时间,还没尝试过,感觉这样用起来太麻烦,还不如就睡眠固定时间,只不过效率低一些,有兴趣可以尝试下面的做法。

def get_time():#当前时长now_time = driver.find_element_by_xpath('//*[@id="video"]/div[5]/div[2]/span[1]')#总时长tot_time = driver.find_element_by_xpath('//*[@id="video"]/div[5]/div[4]/span[1]')return now_time,tot_timenow_time,tot_time = get_time()if now_time == 0.99*tot_time:driver.find_element_by_xpath('//*[@id="mainid"]/div[1]/div[2]').click() #点击下一章

selenium自动化看网课相关推荐

  1. Python+APPIUM+模拟器实现自动看网课

    Python+APPIUM+模拟器实现自动看网课 本文主要使用Python以及APPUIM编写脚本实现超星APP自动看课的功能.关于APPIUM的配置请看新手入门--APPIUM的环境配置以及连接夜神 ...

  2. [自动化] 如果电脑不会自己看网课,就应该用Python教会它

    很多时候想刷网课,但像超星学习通这样的平台在播完一条视频后并不会自动切播到下一条.所以这里简单用python写了一个小脚本,利用PyAutoGui库自动完成一些如鼠标移动点击来刷网课的操作. 环境准备 ...

  3. b站网页版倍速无效_看网课讲师太啰嗦太慢?在线视频课程效率低?教你自定义超倍速看

    经常在网上看视频教程的朋友,是否像我一样为看视频不能快速播放而烦恼呢? 有的讲师讲课太慢了,即时有倍速播放还是很啰嗦,直接跳过吧怕忽略整个流程没法连接,跟着看很多步骤又是自己再熟悉不过的,能不能直接按 ...

  4. 不用看网课就能学到python的文章(第一天)

    为什么要学python? 在大数据时代,抖音快手火爆全球,作业帮小猿搜题的数据库,都离不开大数据,大数据的科学计算,最重要的语言就是python,网络爬虫(网络爬虫 - 搜狗百科)搜索引擎等等也主要是 ...

  5. 看网课录播时候老师讲得太慢而app没有加速功能怎么办?

    step1 想办法拿到网站链接,然后去网页打开 比如先点开某链接 我点的是数学,复制它的链接,如下图 step2 然后在浏览器打开(我选的是谷歌浏览器) 然后按下F12(笔记本电脑可能需要点Fn+F1 ...

  6. 最近有个朋友的需求,用js写了一个插件,可以看五学教育(wuxuejiaoyu.cn)的网课

    湖南环境生物职业技术学院 ,就是以前的湖南生物机电学校,成人高考需要看网课,问我有没有办法.我写了一个插件,一天时间差不多把网课和考试都搞完了.....油hou还真的不错, 后台使用python  f ...

  7. 单片机有什么好的网课?

    现在关于单片机的网课教程可以说泛滥了. 对于新手来说,教程太多不一定是好事,因为没经验,不知道怎么选择. 那么如果你不知道最佳学习路径,可以看我这篇文章,入门先学什么,进阶学什么,每个环节学到什么程度 ...

  8. 推荐书单(网课)-人生/编程/Python/机器学习

    一个人如果抱着义务的意识去读书,便不了解读书的艺术.--林语堂<生活的艺术> 整理了下大学以来读过的书单,此举是为了督促自己,也是为了与君共享 一.在读 <明朝那些事> 24% ...

  9. 【四级英语单词·LIST1】 B站网课笔记 新东方四级词汇词根+联想记忆法 乱序版

    快要考四级了,自己在B站看网课做的笔记,书本是<新东方四级词汇词根+联想记忆法 乱序版>,放上来给需要的同学,也方便以后自己回顾,以后会慢慢更新. sincere adj.真诚的 sin- ...

  10. 计算机科学考研听谁的网课好,终于明白了!考研英语网课听谁的好?

    原标题:终于明白了!考研英语网课听谁的好? 关于考研英语网课听谁的好?考研要不要报网课,好像一直都是一个挺有争议性的话题.有人觉得纯粹是浪费时间,也有人说网课对自己帮助很大. 我考研前,也犹豫了好久要 ...

最新文章

  1. MATLAB中导入数据:importdata函数
  2. UIApplication sharedApplication详细解释-IOS
  3. GDCM:gdcm::ImageHelper的测试程序
  4. [导入]防止你的日志页被人iframe
  5. c/c++编码规范(2)--作用域
  6. java insert方法_【Oracle/Java】以Insert ALL方式向表中插入百万条记录,耗时9分17秒...
  7. ReportLab for PDF
  8. mysql存储过程 等于_mysql存储过程字符串等于
  9. UI设计干货模板|输入框设计临摹素材
  10. 字符串json转成json对象
  11. 理解javascript:void(0);和href=#
  12. ASM 字节码插桩入门
  13. 前端开发:Mac电脑修改hosts文件的方法
  14. sniffer 嗅探器
  15. 谈谈开展信息安全工作的四个权力
  16. 吾生也有涯,而知也无涯。
  17. 如何把密度函数化为标准正态二维分布_高中就开始学的正态分布,原来如此重要...
  18. 关于我转生成史莱姆这件事
  19. CentOS7下安装yara
  20. 微信小程序答题,怎么设计页面渲染,答完一题,跳到下一题

热门文章

  1. Java高级工程师常见面试题(答案)
  2. 计算机专业毕业设计题目大全(各种类型系统设计想法汇总)
  3. 计算机类专业毕业设计(课程设计)题目大全
  4. 推荐 Word、EXCEL必备工具箱
  5. 201632位matlab下载_Matlab 2016a下载
  6. 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(八)字符串处理指令
  7. 《与孩子一起学编程》书评
  8. 《信号与系统》解读 第1章 信号与系统概述-6:系统对时域信号的基本运算与基本变换---幅度、加法、乘法、积分、微分、时延、反转、混合
  9. win10解压软件哪个好(win10用哪个解压软件)
  10. c++课设作业之课程信息管理系统