近期看到腾讯课堂停服的通知,心痛之余,想到啊,我还有很多课程没看完,就剩下两个月的事件,我也来不及看完了。怎么办?
索性,我研究下,怎么把视频保存下来。
接下来请听我分析。
所用技术
Python、Selenium
技术方案
简单来说,通过Selenium打开浏览器,通过课程视频播放详情页的链接,获取整个课程的标题和视频链接。
难点
腾讯课堂的视频不是mp4直接播放的,是m3u8地址。这就意味着,不能通过dom src的js方式简单获取,但通过代码接口逆向过于耗费时间和经历。
使用前,应该先通过测试监听的方式,启动浏览器
C:
cd C:\Program Files\Google\Chrome\Application
chrome.exe --remote-debugging-port=9527
这里的端口指的是selenium要监听的那个,这里指认了,一会自动化执行的时候才会在这个窗口。这里是必要的,因为腾讯课堂限制必须登录,才能访问页面,所以启动后要先登录。然后才能执行抓取程序。
后面的步骤
- 启动监听程序
- 抓取课程链接程序
- 通过课程链接抓取真正视频链接程序。(这一步是相对难的)
如何找视频真实链接?
我是通过监听Network找到m3u8的地址,逐个视频自动获取m3u8地址,然后存储到本地。
opt =