1.使用selenium库

2.下载谷歌驱动(驱动版本最好是跟本地谷歌版本差不多)

整体代码如下:

  • 判断是否为视频或者文档 是视频就播放 是文档就下一页操作
#判断是否为视频 是就播放 不是就下一页操作
from selenium import webdriver
import timebrowser = webdriver.Chrome(executable_path="D:\google\chromedriver.exe")
url='http://passport2.chaoxing.com/wunitlogin?refer=http%3A%2F%2Fi.mooc.chaoxing.com'
browser.get(url)#学校 学号 密码 验证码登陆
def login():inp_1 = input("请输入学校:")inp_2 = input("请输入学号:")inp_3 = input("请输入密码:")inp_4 = input("请输入验证码:")school = browser.find_element_by_id("FidName")username = browser.find_element_by_id("idNumber")password = browser.find_element_by_id("pwd")verycode = browser.find_element_by_id("numcode")school.send_keys(inp_1)username.send_keys(inp_2)password.send_keys(inp_3)verycode.send_keys(inp_4)browser.find_element_by_xpath('//*[@id="userLogin"]/div/a').click()print("----------正在登陆中----------")# 进入主页 开始选择课程 xpath匹配
def html_1():time.sleep(2)browser.find_element_by_xpath('//*[@id="zne_kc_icon"]').click()     #课程选项的xpathprint("----------进入课程----------")time.sleep(2)browser.switch_to.frame("frame_content")#选择我需要学的课的xpathbrowser.find_element_by_xpath('/html/body/div/div[2]/div[2]/ul/li[6]/div[2]/h3/a').click()  #课程print("----------已进入所点击课程----------")def html_2():#浏览器标签页跳转设置browser.switch_to.window(browser.window_handles[1])#进入课程中的第一个小节time.sleep(1)browser.find_element_by_xpath('/html/body/div[5]/div[1]/div[2]/div[3]/div[1]/div[1]/h3/span[3]/a').click()  #开始小节# button模拟点击播放
def button():time.sleep(1)try:#进入frame播放框架browser.switch_to.frame("iframe")browser.switch_to.frame(0)time.sleep(2)                              #此处等待需要就一些就不会报错终止程序browser.find_element_by_xpath('//*[@id="video"]/button').click()print('----------等待播放----------')time.sleep(2)print("----------课程正在播放中----------")except:# 回到主框架browser.switch_to.default_content()print("----------此处不是视频,即将点击下一页----------")time.sleep(4)browser.find_element_by_xpath('//*[@id="mainid"]/div[1]/div[2]').click()time.sleep(4)#判断完重新回到button函数再进行判断button()#判断视频是否播放完
def vedio_if():time.sleep(1)try:vedio_stat_time = browser.find_element_by_xpath('//*[@id="video"]/div[4]/div[2]/span[2]').get_attribute("textContent")vedio_end_time = browser.find_element_by_xpath('//*[@id="video"]/div[4]/div[4]/span[2]').get_attribute("textContent")print("播放时间:",vedio_stat_time,'结束时间:',vedio_end_time)time.sleep(1)return vedio_stat_time,vedio_end_timeexcept:pass# 判断有第二节课吗有就播放
def vedio_if2(vedio_stat_time,vedio_end_time):if vedio_stat_time ==vedio_end_time:try:browser.switch_to.default_content()browser.switch_to.frame("iframe")browser.switch_to.frame(1)browser.find_element_by_xpath("//*[@id='video']/button").click()time.sleep(2)except:print("----------没有第二节课了,即将进入下一页----------")def next_start(vedio_stat_time,vedio_end_time):if vedio_stat_time==vedio_end_time:try:browser.switch_to.default_content()print("----------开始点下一页----------")time.sleep(1)browser.find_element_by_xpath('//*[@id="mainid"]/div[1]/div[2]').click()time.sleep(2)except:print("----------结束----------")if __name__=='__main__':login()html_1()html_2()while True:button()time_tuple = vedio_if()while time_tuple[0] != time_tuple[1]:time_tuple = vedio_if()try:vedio_if2(time_tuple[0],time_tuple[1])if time_tuple[0] ==time_tuple[1]:print("----------开始测试第二节课时间----------")time_tuple_2 = vedio_if()while time_tuple_2[0] !=time_tuple_2[1]:time_tuple_2 = vedio_if()next_start(time_tuple_2[0],time_tuple_2[1])except:next_start(time_tuple[0],time_tuple[1])        

源代码参照文章:https://www.cnblogs.com/xhfzjbs/p/12028948.html

python脚本模拟浏览器实现学习通自动刷网课相关推荐

  1. 利用代码实现自动刷网课阅读时长功能 JAVA

    目录 前言: 理论依据: 现实依据: 朴素版只能循环阅读不能翻页: 升级版 翻页 + 阅读: 如何使用: 前言: 最近不也快结课了,网课该刷的都要刷掉,最近不就把一门思政课刷完了,课后习题也做了,但是 ...

  2. python爬虫模拟浏览器的两种方法_python爬虫模拟浏览器访问-User-Agent过程解析

    这篇文章主要介绍了python爬虫模拟浏览器访问-User-Agent过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 模拟浏览器访问-Use ...

  3. python自动化模拟浏览器

    采用python自动化模拟浏览器操作 # -*- coding: utf-8 -*-""" 通过splinter刷12306火车票 可以自动填充账号密码并登陆,接下来的事 ...

  4. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  5. python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法

    浅谈Python脚本开头及导包注释自动添加方法 1.开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定 #!/usr/bin/python 是用来 ...

  6. python 模拟用户点击浏览器_使用python进行模拟浏览器操作

    使用python完成模拟浏览器操作主要是使用selenium来模拟浏览器,当然还要带上浏览器的驱动比如chromedriver.exe的驱动. 一般使用selenium进行模拟操作需要注意引入一下几个 ...

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

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

  8. 分享个荒野日记辅助脚本攻略,荒野日记自动刷资源

    分享个荒野日记辅助脚本攻略,荒野日记自动刷资源 红手指相当于一台云端运行的手机,同时内有千款免费辅助脚本(主流游戏都有脚本),可远程操纵可 24h离线运行,免除你流量.电量不足的烦恼,即使你下线,ap ...

  9. Python脚本模拟按键Crtl+1,Crtl+2....实现浏览器标签自动切换

    可以使用pyautogui库来实现模拟按键功能.首先安装该库: pip install pyautogui 接下来,创建一个名为keyboard_simulation.py的Python脚本,并编写以 ...

  10. 用Python脚本模拟登陆获取地铁一卡通的充值和消费记录

    1. 思路 这几天尝试写了个脚本模拟登陆获取地铁一卡通的充值和消费记录,学习了不少新东西,总结下记录下来.整个流程大概这样,首先模拟登陆一卡通的查询网址,分析如何获取验证码,然后就是下载验证码并识别, ...

最新文章

  1. GIT:如何管理本机的多个ssh密钥(多个远程仓库账号)
  2. linux find d,Linux find命令傻瓜入门
  3. ZOJ18th省赛 Lucky 7
  4. 给数据中心来个例行“体检”——动力系统
  5. python解压打开文件过多_在python中使用zipfile压缩文件时层级很多,有很多层目录...
  6. android光照传感器,详解 android 光线传感器 light sensor的使用
  7. 微信公众号url服务器在哪里,微信公众号url认证(服务器认证)
  8. Monkey稳定性测试初探(二)
  9. 再读王永庆卖米的故事
  10. python 支付宝支付 无效根证书_Python-支付宝SDK的使用与注意事项,pythonalipaysdk,及,点...
  11. 安装恩智浦IDE与配置SDK和烧录程序
  12. 如何解决PS软件工作区不能吸附到工具栏?
  13. Tkinter模块GUI界面化编程实战(三)——2048小游戏(含详解及完整源码、完整程序下载链接)
  14. 微信小程序之点点考勤经验总结
  15. 开放式社区?太小儿科了,智慧城市才是重点
  16. Spring使用纯注解配置事务管理并实现简单的增删查改以及模拟转账功能
  17. IOS和安卓展示时间兼容问题
  18. 后端开发框架的具体内容是什么?
  19. Java爬虫.HttpClient
  20. 三分钟读懂什么是动作捕捉

热门文章

  1. oracle iso,Oracle数据库之Linux操作系统各版本ISO镜像下载(包括oracle linux\redhat\centos\u...
  2. zul ajax使用线程池
  3. C语言中学生成绩管理系统
  4. 奋战聊天机器人(二)语料和词汇资源
  5. 2022年上半年系统集成项目管理工程师下午真题及答案解析
  6. HDU 3642 Get The Treasury ( 线段树 求长方体体积并 )
  7. 网易云爬取歌词进行歌词词云可视化
  8. 视频教程-R语言数据挖掘-模型评估篇-大数据
  9. 解决SVN语言包安装后无法出现下拉框选择
  10. 拍照识别身份证 Android/iOS身份证识别技术