python教程哪个好知乎(如何保存知乎回答里的)(1)

之前在知乎看到有人问如何保存知乎回答里的视频,于是想着写个脚本直接根据知乎回答的链接下载该回答里的视频,这样岂不是十分简单方便?(因为我看到那个提问下方的回答操作起来都挺“麻烦”的)

让我们愉快地开始吧~

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

python教程哪个好知乎(如何保存知乎回答里的)(2)

开发工具

Python版本:3.6.4

相关模块:

PIL模块;

requests模块;

click模块;

以及一些Python自带的模块。

环境搭建

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

原理简介

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

'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教程哪个好知乎(如何保存知乎回答里的)(3)

That's all.

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

视频演示

在cmd窗口运行"Cmd.py"或"Demo.py"文件即可。

当然相关文件中也提供了打包好的EXE文件,无需配置环境,直接双击运行即可。

更多

相关文件中提供的源代码也是整个项目的源代码,打包好的EXE文件也是对整个项目功能的打包。T_T我就是来水篇文章的,嘿嘿~

相关文件关注 转发回复“07”获取。

,