最近发现自己选的线上通识课在雨课堂上面上传了课件,数了一下一共要看100多个视频,平均时长5-20分钟,而雨课堂的视频无法手动拉动进度条,也无法调整播放速度,因此如果一个一个刷将会非常耗时,作者因此借助自己的爬虫知识,以及在网上搜索过相关经验之后,自己编写了这么一个刷课间的脚本,下面来讲一下运作原理:
一.首先配置相关的环境
最核心的库就是selenium==4.0.0和urllib3==1.26.2,这里的selenium版本是不能改的,作者试过用最新版的selenium会出现和urllib版本不适配的问题。
另一个核心就是必须要有谷歌浏览器和谷歌浏览器的驱动,且二者的版本必须一致,作者自己的版本是117,浏览器从网上就可以直接下载,驱动的话这里有详细的下载教程:
http://t.csdnimg.cn/Pv2x3【chromedriver与chrome各版本及下载地址】
驱动文件必须放在python解释器的Scripts文件夹下,并且配置到环境变量中,具体教程如下:
http://t.csdnimg.cn/z1O4i 【PyCharm安装配置谷歌浏览器驱动】
全部配置完成之后就可以开始配置雨课堂了!
二.配置谷歌浏览器的参数
我们知道selenium是专门用于模拟人类进行网页操作的库,因此程序接收到的信息与浏览器完全一致,为了显示出程序的优越性,我们还要设置chrom的一些参数,包括下面几个:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json
import time
opt=Options()
opt.add_argument("--headless")
opt.add_argument("--disable-gpu") #用于设置无头浏览器,让程序在后台运行
opt.add_argument("--mute-audio") #用于刷视频时静音,这个很重要!
web=webdriver.Chrome(options=opt) #获取chrome浏览器的驱动,并初始化Chrome浏览器
三.设置雨课堂的cookie文件,用于自动登录。
我们知道雨课堂每次登陆都是需要输入账号和密码的,因此保存一个cookie将会对后面的免登录有很大帮助,下面的代码运行一次即可,且建议单独创建一个py文件运行,运行后,将创建一个txt文件存储cookie,并在后面程序运行时载入此cookie,代码运行时,将跳出雨课堂的扫码登录界面,扫码后成功登陆,即可关闭,此时已经保存成功。<