selenium应用之抓取b站黑马视频目录建立学习计划Excel

本文介绍了如何利用Python的Selenium库配合openpyxl创建一个学习计划Excel,记录B站黑马Java视频的目录和时长,以便于学习进度管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求故事:
最近时间一下子多了起来,用来学习Java是最合适不过了,但是去b站看视频难免会没有自制力,于是决定用selenium来抓取b站黑马Java视频的目录创建一个学习计划的Excel,便于进行学习进度的管理。
注:纯手打,如有错误欢迎评论区交流!
转载请注明出处:https://blog.youkuaiyun.com/testleaf/article/details/130330760
多谢!!!

一、版本说明

Python:3.8.2
在这里插入图片描述
selenium:4.8.2
在这里插入图片描述
openpyxl:3.0.10
在这里插入图片描述
Chrome浏览器版本:112.0.5615.121(正式版本)(64 位)
在这里插入图片描述
chromedriver版本:112.0.5615.49
在这里插入图片描述

二、导入需要使用的库

from selenium import webdriver
from openpyxl import Workbook
from selenium.webdriver.common.by import By

三、创建并初始化Excel

wb = Workbook()
sheet = wb.create_sheet('20天学会Java', 0)

四、打开网站并窗口最大化

driver = webdriver.Chrome()
driver.get('https://www.bilibili.com/video/BV1Cv411372m') ## 打开网站
driver.maximize_window() ## 使浏览器的窗口最大化

五、获取视频目录列表及其长度

videoList = driver.find_elements(By.XPATH,'//ul[@class="list-box"]/li') ## 获取视频目录列表
listLength = len(videoList) ## 获取视频目录列表的长度

在这里插入图片描述

六、遍历视频目录列表内容并存入Excel

for listIndex in range(listLength):
    print(listIndex+1) ## 打印当前序号,便于知道进度
    element1 = driver.find_element(By.XPATH,'//ul[@class="list-box"]/li['+str(listIndex+1)+']/a/div/div/span[1]')
    element2 = driver.find_element(By.XPATH, '//ul[@class="list-box"]/li[' + str(listIndex + 1) + ']/a/div/div/span[2]')
    element3 = driver.find_element(By.XPATH, '//ul[@class="list-box"]/li[' + str(listIndex + 1) + ']/a/div/div[2]')
    element3List = element3.get_attribute('innerText').split(':')
    if(len(element3List)==2): ## 把时长转化为以秒为单位的形式
        element3Value = int(element3List[0])*60+int(element3List[1])
    else:
        element3Value = int(element3List[0]) * 3600 + int(element3List[1])*60+int(element3List[2])
    sheet.cell(row=listIndex + 3, column=1, value=element1.get_attribute('innerText'))
    sheet.cell(row=listIndex + 3, column=2, value=element2.get_attribute('innerText'))
    sheet.cell(row=listIndex + 3, column=3, value=str(element3.get_attribute('innerText')))
    sheet.cell(row=listIndex + 3, column=4, value=element3Value)

在这里插入图片描述

七、Excel附加行头

sheet.cell(row=2, column=1, value="序号")
sheet.cell(row=2, column=2, value="标题")
sheet.cell(row=2, column=3, value="时长")
sheet.cell(row=2, column=4, value="时长(秒)")
sheet.cell(row=2, column=5, value="完成情况")
sheet.cell(row=2, column=6, value="完成时间")

八、保存Excel

wb.save(filename=r'b站黑马视频学习进度表.xlsx')

九、对生成的Excel进行一些额外的操作

运行完上述代码,得到一个Excel文件:
在这里插入图片描述

调整单元格使其宽度自适应内容,双击一下这个东西就可以:
在这里插入图片描述

效果如下:
在这里插入图片描述

冻结至第2行:
在这里插入图片描述

在首行第2列插入数据:

="进度:"&ROUND(SUM(E3:E202)/SUM(D3:D202),4)*100&"%;已学:"&ROUND(SUM(E3:E202)/3600,2)&"小时;还剩:"&ROUND((SUM(D3:D202)-SUM(E3:E202))/3600,2)&"小时"

然后回车;

在这里插入图片描述
说明:
1、ROUND(A,2):将A保留两位小数
2、SUM(D3:D202):求D3到D202所有数据的和
3、&:连接字符串

效果:
在这里插入图片描述

十、后续操作

1、看完一集视频就在这里写上与左侧相等的数值:
在这里插入图片描述
第一行进度栏的数值会自动变化:
在这里插入图片描述

2、完成时间右边直接写上:

=NOW()

回车,然后复制后到左边粘贴为数值:
在这里插入图片描述

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

testleaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值