【对于学习的研究】(最新)_playrate=15

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:xhs1999xhs (备注Java)
img

正文

🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝

🥰 博客首页:knighthood2001****

😗 欢迎点赞👍评论🗨️

❤️ 热爱python,期待与大家一同进步成长!!❤️


如何实现:通过selenium模块进行省市的选择,倍速播放,题目的答题,最后保存图片至桌面


目录

1模块准备

2定义桌面路径函数

3驱动浏览器

4省市选择

5“开始学习”

6全部代码展示


1模块准备

import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import winreg
from selenium.webdriver.common.by import By

Select用来进行下拉框的选择,winreg用来获取桌面路径。


2定义桌面路径函数

笔者之前写过详细的内容,如下链接

python生成桌面路径(winreg)

以下是所需要的具体代码模板,照抄使用即可。

def desktop_path():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
    desktop = winreg.QueryValueEx(key, "Desktop")[0]
    # print(desktop)
    return desktop

3驱动浏览器

selenium操作浏览器需要有ChromeDriver驱动来协助。具体安装及使用教程,本文就不细述了。

url = input('请输入网址:')
# https://h5.cyol.com/special/daxuexi/cod4a2tb5v/index.html
driver = webdriver.Chrome()
driver.get(url)
# 窗口最大化,便于操作
driver.maximize_window()
time.sleep(1)
# 进入iframe
driver.switch_to.frame(0)
**driver = webdriver.Chrome()**表示声明chrome浏览器
**driver.get(url)**表示用get()方法打开url
**driver.maximize\_window()**表示窗口最大化,便于后续操作

接下来注意看,页面中视频内容是嵌套在iframe中,因此我们要是需要定位视频中相应元素,就需要切换到该iframe。

# 进入iframe
driver.switch_to.frame(0)
**driver.switch\_to.frame(el/index)**,即它可以使用索引,因为该iframe是第一个出现的,所在位置为0。 

4省市选择

接下来出现需要选择省市,使用Select()函数,括号中进行元素下拉框位置的定位,然后再进行

Select().select_by_visible_text('浙江省')

即通过具体文本内容进行选择下拉框选项,当然也可以根据value值进行选择。

同理,市的选择也是如此方法。

Select(driver.find_element(by=By.CSS_SELECTOR, value='#city')).select_by_visible_text('绍兴市')

选择好之后,定位确定按钮并点击即可。

driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[8]/div[3]').click()

具体代码如下:

Select(driver.find_element(by=By.CSS_SELECTOR, value='#province')).select_by_visible_text('浙江省')
# time.sleep(1)
Select(driver.find_element(by=By.CSS_SELECTOR, value='#city')).select_by_visible_text('绍兴市')
# time.sleep(1)
# 确定按钮
driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[8]/div[3]').click()


5“开始学习”

代码如下:

# 开始学习
driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section0.topindex.ani > div.start_btn.on').click()
# ②倍速播放
time.sleep(2)
driver.execute_script("document.querySelector('video').playbackRate = 15.0;")
# ③
while True:
    try:
        # 是否出现题目
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1')
        time.sleep(0.1)
        # 选A
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.w1.option').click()
        time.sleep(0.1)
        # 确认按钮
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.button').click()
        # 继续学习
        time.sleep(2.5)
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.continue').click()
        # 15倍速
        driver.execute_script("document.querySelector('video').playbackRate = 15.0;")
    except:
        pass
    # ④
    try:
        if driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section3.topindex2'):
            time.sleep(1)
            a = time.time()
            # driver.get_screenshot_as_file(r'C:\Users\knighthood\OneDrive\桌面\{}.png'.format(a))
            driver.get_screenshot_as_file(r'{}\{}.png'.format(desktop_path(), a))
            break
    except:
        pass
driver.close()

讲解:

首先定位**“开始学习”**按钮并点击

接下来driver.execute_script()执行JS代码

driver.execute_script("document.querySelector('video').playbackRate = 15.0;")
**document.querySelector()为选择器,可以根据class进行选择,然后用playbackRate将播放速度改为15倍。**

接下来就判断是否出现题目,如果出现,选择A(因为题目作答是否正确对结果没啥影响,因此随意找个选项进行选择即可)。无论是否做对,最后都会出现继续听讲按钮,因此需要点击该按钮。

最后如果出现完成学习的页面(如下图) ,则截图(以时间戳命名)保存至桌面。

    try:
        if driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section3.topindex2'):
            time.sleep(1)
            a = time.time()
            # driver.get_screenshot_as_file(r'C:\Users\knighthood\OneDrive\桌面\{}.png'.format(a))
            driver.get_screenshot_as_file(r'{}\{}.png'.format(desktop_path(), a))
            break
    except:
        pass

最后关闭浏览器即可。

driver.close()

注意:如果觉得用while True:try…except来判断元素是否能找到,大家可以去尝试一下element.is_display()函数来判断元素是否可见,如果可见,则进行后续操作。


6全部代码展示

# -*- coding: utf-8-*-
import time
from selenium import webdriver
from selenium.webdriver.support.ui import Select
import winreg
from selenium.webdriver.common.by import By


def desktop_path():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
    desktop = winreg.QueryValueEx(key, "Desktop")[0]
    # print(desktop)
    return desktop

url = input('请输入网址:')
# https://h5.cyol.com/special/daxuexi/cod4a2tb5v/index.html
driver = webdriver.Chrome()
driver.get(url)
# 窗口最大化,便于操作
driver.maximize_window()
time.sleep(1)
# 进入iframe
driver.switch_to.frame(0)

time.sleep(1)
# 根据文本
Select(driver.find_element(by=By.CSS_SELECTOR, value='#province')).select_by_visible_text('浙江省')
# time.sleep(1)
Select(driver.find_element(by=By.CSS_SELECTOR, value='#city')).select_by_visible_text('绍兴市')
# time.sleep(1)
# 确定按钮
driver.find_element(by=By.XPATH, value='/html/body/div[2]/div[8]/div[3]').click()

# 开始学习
driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section0.topindex.ani > div.start_btn.on').click()
# 倍速播放
time.sleep(2)
driver.execute_script("document.querySelector('video').playbackRate = 15.0;")

while True:
    try:
        # 是否出现题目
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1')
        time.sleep(0.1)
        # 选A
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.w1.option').click()
        time.sleep(0.1)
        # 确认按钮
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.button').click()
        # 继续学习
        time.sleep(2.5)
        driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section1.topindex1 > div.continue').click()
        # 15倍速
        driver.execute_script("document.querySelector('video').playbackRate = 15.0;")
    except:
        pass
    try:
        if driver.find_element(by=By.CSS_SELECTOR, value='body > div.container > div.section3.topindex2'):
            time.sleep(1)
            a = time.time()
            # driver.get_screenshot_as_file(r'C:\Users\knighthood\OneDrive\桌面\{}.png'.format(a))
            driver.get_screenshot_as_file(r'{}\{}.png'.format(desktop_path(), a))
            break
    except:
        pass
driver.close()

最后

一次偶然,从朋友那里得到一份“java高分面试指南”,里面涵盖了25个分类的面试题以及详细的解析:JavaOOP、Java集合/泛型、Java中的IO与NIO、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、Spring Boot、Spring Cloud、RabbitMQ、Dubbo 、MyBatis 、ZooKeeper 、数据结构、算法、Elasticsearch 、Kafka 、微服务、Linux。

这不,马上就要到招聘季了,很多朋友又开始准备“金三银四”的春招啦,那我想这份“java高分面试指南”应该起到不小的作用,所以今天想给大家分享一下。

image

请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs (备注Java)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
分面试指南”应该起到不小的作用,所以今天想给大家分享一下。

[外链图片转存中…(img-OwsJfnsV-1713687940712)]

请注意:关于这份“java高分面试指南”,每一个方向专题(25个)的题目这里几乎都会列举,在不看答案的情况下,大家可以自行测试一下水平 且由于篇幅原因,这边无法展示所有完整的答案解析

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs (备注Java)
[外链图片转存中…(img-54lTBKzq-1713687940712)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值