抓取网页视频(抓取网页视频大部分来自于网站的开放或者抓取思路)
优采云 发布时间: 2022-02-14 06:02抓取网页视频(抓取网页视频大部分来自于网站的开放或者抓取思路)
抓取网页视频大部分来自于网站的开放api或者后端服务。不过话说回来,其实要抓取某一个特定的网站或者某一个特定的contenttype的视频也是有非常简单的抓取网站的方法的。比如要抓取网页上的视频录像,在我的理解中,主要的思路有下面几种。首先,给每个视频单独下载一个视频文件(resource.js或者json),下载完成后扔到disk里面,这样每次每个视频可以用同一个地址:api的headers里如果有"rewritecacheurl"的字段,就用它直接获取每个视频的文件路径。
如果headers里没有的话,那有可能是抓取中只能用query和url来获取,这时候要对浏览器的解析库进行修改了,把rewritecacheurl的字段改成json形式。然后,对这些文件列表抓取,一般会首先对其中的所有文件抓取,这个时候用这些文件的路径表就可以保存所有的repository,然后用yes/no的写法。
这样方便循环,因为现在大部分视频也都是循环播放的。如果有字幕的话,可以for循环抓取。如果不需要任何字幕,那么就是顺序的抓取。顺序,就是在所有的视频列表中随机读取一个视频列表,这样对应于每个视频对应一个repository,然后对每个repository抓取就可以了。(前提是已经把文件名记录在disk里)再然后,对每个网站一次性抓取所有需要字幕的视频,这个时候要用到record.yes/no写法,把没有字幕的视频字幕放在对应视频列表中。
每次循环读取这个视频列表,找到最新的那个字幕放入record中。如果这个视频无字幕的话,一般是url匹配,然后将url伪装成文件获取。然后手工处理字幕和编辑其他辅助。最后,循环处理所有无字幕视频。一般用glob将所有无字幕视频数据抓取到disk,然后用yes/no写法循环读取disk中所有的url,将url放入相应的字幕列表中。
然后找到所有无字幕视频文件的列表中那个带有字幕的视频,用"yes/no"进行相应的判断。最后把文件的路径放入抓取到的某个视频列表里,重复上面的步骤,循环抓取其他字幕视频。至于搜索引擎,一般我们抓取的视频都是没有带播放链接的,那么如果希望可以抓取到网站的连接,那么需要利用第三方的浏览器插件。decimalwaitsizingcondate.js(在python官网就可以获取),这个是webdows端的抓取,可以传数组,officeword,ppt啥的。
至于用什么格式也是可以选择的,如果你要用zip的话,可以用"xxxx.zip"如果直接mp4格式的话,可以用"".然后就可以直接用字幕分割线以及字幕文件放在excel。以上来自我在#whatquest/newcondate的一篇博客。