一、庭审直播网
二、爬取对象
庭审公开网的内容包括直播与录播
直播没有办法爬,只能看的时候进行录制
所有选定的目标为录播
三、爬取分析
(一)视频地址获取
首先录播视频的加载方式为点击查看更多后进行动态进行新内容的加载
加载中url并不变化
其中case_list中的就是视频的地址
不点击see more不会加载后续内容
因而此处使用selenium进行模拟点击
(二)视频文件
首先通过以下元素交互进入具体案件的庭审录播
有的视频文件有的直接由视频的地址.mp4,可以直接下载,
但是这种一般内含了一个网页
然而大多数是没有的,只有跳转的url
但是其中的在调试中可以发现,点击播放时会出现.m3u8文件;而通过src中的url进入时不需要点击播放即可找到.m3u8文件,因而获取属性src中url,然后通过requests模块快速进行.m3u8文件的地址的查找。
import requests
r = requests.get("http://player.videoincloud.com/vod/9314083?src=gkw&cc=1")
print(r.text)
因此,selenium只要找到属性src的值即可
四、 视频下载
找到m3u8文件后即可使用ffmpeg进行下载,此处为了下载速度更快使用了
anwenzen的M3u8Download,进行了适合windows平台的修改
五、成果
该项目已经上传到github上,链接: trial_recording_and_broadcasting.
六、问题
没有直接下载MP4,后续会进行增加,从而不用进行m3u8的下载,而是直接下载MP4,此外m3u8文件的下载出现大幅度的失误即下载后的视频比应有的视频少了很多