Python爬虫下载知乎视频

开发工具

Python版本:3.6.4

相关模块:

PIL模块;

requests模块;

click模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。。

关注公众号“python工程狮”回复"知乎视频"获取。

声明:本公众号提供的所有脚本仅供学习交流,禁止用于其他。

原理简介

首先,请求给定的知乎回答链接,例如:

‘https://www.zhihu.com/question/21395276/answer/425130152’

利用正则表达式提取请求结果页面中的视频信息(也就是视频ID,ID数量与该回答中的视频数量一致)。然后,将抓包分析获得的API链接:

https://lens.zhihu.com/api/videos/

与每个视频ID均可组合成一个新的链接地址,例如:

https://lens.zhihu.com/api/videos/xxxxxx

请求该链接地址,即可获得对应视频的下载地址。

另外,需要注意的是,知乎回答里的视频文件使用的是m3u8、ts流格式,即需要通过解析m3u8文件来下载所有的视频传输流文件,然后再将其合并。最简单的方法是使用FFmpeg解析,不过本着学习的目的,我自己也写了个简单的解析类,部分代码截图:

Python爬虫下载知乎视频

完整源代码请自行参考相关文件。