FNN网站m3u8视频抓取--python爬虫--抓包、浏览器模拟、openssl解密、FFmpeg视频合成、Tkinter图形界面、多线程

注意:本程序由于要使用windows的命令行,只在windows上测试通过。如果是Linux平台,将代码中windows的命令行部分换成相应的Linux命令就行。

提示:大家可以先看博客https://blog.youkuaiyun.com/liujiayu2/article/details/86083400。 获取m3u8的基础知识。如果对FNN网站感兴趣,可以使用上面博文的方法对FNN网站的m3u8文件进行分析。FNN上的m3u8一般有3个。我们只需要获取主m3u8(main_m3u8),然后解析main_m3u8文件,可以获得视频video_m3u8和音频audio_m3u8另外两个m3u8文件。

一、任务目标

输入:FNN网站的URL,例如https://www.fnn.jp/articles/-/210727

输出:对应网页的mp4视频

二、m3u8视频抓取基本思路

1.使用webdriver模拟chrome浏览器访问指定的URL。

2.在访问的过程中,利用browsermobproxy进行抓包,并获得视频的主m3u8(main_m3u8).

3.分析main_m3u8,获得视频video_m3u8和音频audio_m3u8。

4.分析视频video_m3u8和音频audio_m3u8,下载多个视频和多个音频。

5.使用openssl和视频video_m3u8和音频audio_m3u8中的key和IV对每个视频和音频进行解密。

6.使用windows命令行对多个解密的视频进行合成。

7.使用windows命令行对多个解密的音频进行合成。

8.使用ffmpeg对音频文件和视频文件进行合成。

三、一些坑

1.安装browsermobproxy时,需要安装JAVA,我安装的是jdk-10.0.2。注意要将环境变量添加到系统。

2.安装browsermobproxy时,不仅需要pip install,还需要在电脑上存放browsermob-proxy-2.1.4文件夹。具体安装可以自行百度。

3.安装browsermobproxy时,需要将证书导入chrome浏览器中,不然chrome会罢工。我采用的是公用证书,在网上自己找的。你也可以自行百度,如果百度不了。可以给我发邮件(heguannan@163.com),我将证书发送给你。你导入到chrome中就行了。

4.使用webdriver,获取网页中的元素时,要注意find_element_by_??和find_elements_by_??。注意一个是element,是单数。一个是elements,是复数。当寻找的元素有多个符合要求的时候,一定要使用复数形式,这样会返回一个list。

5.我将ffmpeg加入到环境变量中,在命令行中直接调用ffmpeg有问题。因此,本代码是将ffmpeg的完整路径写了下来,并调用。

6.注意windows的路径中的’\’和python中的转义符冲突,要使用’\\’来表示’\’。具体查看代码。

7.使用Tkinter进行界面编程时,如果一个按钮的作用是执行一大段代码,比如本程序中的爬虫,会造成主界面未响应,这时候可以使用多线程解决。

四、代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值