爬虫进阶——视频抓取(视频加密分割案例)中国职业培训在线网
2020-07-14 06:07
387 查看
爬虫进阶——视频抓取(视频加密分割案例)中国职业培训在线网
.
1.分析网页视频存储形式以及加密格式
一般我们在进行视频采集视频多为:
https:www.baidu.com/1.mp4指向一个视频文件,然而在大多数网站中,现在主流的视频加密格式多为分割为几百个小片段,伴随不断播放而不断加载新的片段,针对中国职业培训在线视频网的视频举例:
http://www.ataclass.cn/player/index/index?guid=0FD6828C-6B69-4E87-92BA-C9C065EF124B&classId=&freeSee=1&index=9493
.
通过
F12按键查看网页缓存,选择顶部的
Network和
xhr:
注:目前主要的视频分割技术以.m3u8文件记录视频片段总数,后缀名为.m3u8的文件内内包含该视频所有片段的文件名,视频片段文件多为.ts文件,所以我们在当前开发者工具中寻找对应的.m3u8文件
如下所示:
点击查看该文件内容:
可以观察到所有的视频片段文件都在这里了,从00001.ts-00240.ts
接下来 我们需要重构这些视频片段的url:
https://v.ataclass.cn/a3056df2e9a4466ab3f11b834af9aa95/video/e0fa680558314f968d81483099af6191-4ea8dafff39dd86313e610bfbe5bea35-video-fd-00001.ts
以此类推到00240.ts
接下来开始构造代码请求该视频的所有片段并合并为一个新的mp4文件:
import requests import requests import os import time def run(i,html,referer): #做了一个字符串替换避免出现001或者0011等异常情况:正确——>00001.ts 00011.ts 00111.ts if int(i)<=9: a ='00'+str(i) elif int(i)>=10 and int(i)<=99: a = '0'+str(i) else: a=i url = str(html)+str(a)+'.ts' #重构片段视频文件的url地址 print("开始下载:"+url) headers = {'Referer': str(referer), 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'} r = requests.get(url, headers = headers) # print(r.content) with open('./mp4/{}'.format(url[-10:]),'wb') as f: f.write(r.content) #下载.ts文件到mp4文件夹下保存 def merge(t,cmd): #启用cmd命令合并所有ts为一个新的new.mp4 time.sleep(t) res=os.popen(cmd) print(res.read()) if __name__ == '__main__': html = 'https://v.ataclass.cn/a3056df2e9a4466ab3f11b834af9aa95/video/e0fa680558314f968d81483099af6191-4ea8dafff39dd86313e610bfbe5bea35-video-fd-00' num = 241 referer = 'http://www.ataclass.cn/js/player/pages/play.html?v=1591334951381' #查看.ts文件下的 for i in range(int(num)): run(i, html, referer) #调用合并 merge(5,"copy /b mp4\\*.ts mp4\\new.mp4") #合并所有ts文件为一个新的new.mp4 print('ok!处理完成')
结果如下:
以上就是当前视频网站分割片段视频采集的实例,如需转载请注明出处!https://blog.csdn.net/dbldwang/article/details/106568733
相关文章推荐
- Python爬虫进阶必备 | RSA 加密案例解析汇总(一)
- Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例
- Python爬虫进阶必备 | X咕视频密码与指纹加密分析
- Python爬虫进阶必备 | 关于AES 的案例分析与总结
- java 学习:网络爬虫--中国人才热线邮箱抓取
- 利用python爬虫获取中国最好大学排名和B站排行榜视频
- Python爬虫应用案例视频课程-汤小洋-专题视频课程
- 思维模式进阶实录:征集中国企业数字化转型案例
- 2018最新零基础21天搞定Python分布式爬虫+分布式网络爬虫入门进阶视频教程
- 【python爬虫】抓取B站视频相关信息(一)
- 零基础21天搞定Python分布式爬虫_分布式网络爬虫入门进阶视频教程
- Python进阶课:scarpy框架爬虫12讲-CSDN就业班-专题视频课程
- Linux,tar命令分割参数,进阶,企业生产案例
- Python爬虫进阶必备 | 关于MD5 Hash 的案例分析与总结
- python入门爬虫 60行代码抓取amazon中国站
- 爬虫(三)解析js,抓取优酷免费视频的真实播放地址
- 【python爬虫】抓取B站视频数据及相关信息(二)
- 附视频及ppt:在线分享《从案例说InnoDB的基本优化》总结
- Python爬虫进阶必备 | XX同城加密分析
- Firefox 69 默认阻拦第三方 Cookie、自动播放的视频和加密矿工 | Linux 中国