色妹妹 爬虫|Python|ts体式的加密视频归拢规律_python爬虫ts_晚风
关于爬虫来说,莫得谈德(比如,某些爬虫上w的并发,那么,一些小站可能就会崩溃,其实爬虫亦然不错手脚网罗袭击的,假定有需要袭击的网站,上w致使上百万的并发爬虫抓续袭击,这个网站可能开不了),莫得常识产权(爬虫步履原本便是无视常识产权的,举例,爬取特权类视频,音乐,著作),莫得网站安全这些章程(经常,爬虫一朝驱动,除非快速的自动封禁,举例,封IP,不然无法罢手),也便是说,关于任何资源都不错借助爬虫来赢得,爬虫只是一个么得情谊的机器,但有些东西是不可看,不可摸的,举例,国度神秘,个东谈主秘籍(那有的东谈主说,我望望怎样了?如实没什么,关联词只好让东谈主发现了色妹妹,那么牢门基本也就开了,是以有东谈主说Python是面向牢狱编程,其实说的也便是Python里的爬虫时候)
因此,爬虫是一个需要比拟全面的时候的,需要关于网站,网站结构,网站的章程,网站加解密,数据算帐(爬取的数据可能会有冗余的东西在内部),正则抒发式,js编程和加解密 等等特别熟练才不错(时候全面才不错万物齐可爬,不然爬取的限度会比拟短促)。
注:爬虫的爬取对象粗浅分类
确认对象的种类来说,经常不错粗浅分为音视频类和笔墨信息类,举例,爬取某个网站的音视频,这个和爬取58的租房信息(笔墨信息类)是截然违反的。主如若音视频基本是不需要太多数据算帐的,爬取的限定基本是不错平直使用的。而笔墨信息类需要作念多数的清洗责任,比如,爬取某个招聘网站的招聘信息,可能还需要将爬取限定分析后图形化展示,而不是粗浅的只是把招聘信息爬取下来就收场。
OK,以上是对爬虫的一个粗浅先容,可能会有些地点写的折柳,不外这些不是关节,关节的是本文将蚁合骨子案例来辅导怎样爬取某个视频网站,并将爬取下来的ts体式的文献碎屑归拢成一个可用的视频。
一,爬取历程先容1,不雅察网站结构
举例,网站的资源是flv,也曾ts,也曾mp4,也曾mpeg?data?AVI?rm?
2,判断资源存放情况,是否有加密
基本上9成的音视频是使用js时候加密
3,Python爬取数据(资源)
这个没什么好说的,取舍稳妥的器用爬取就行了
4,清洗数据(资源),数据土产货化存放
举例,ts体式的音视频,需要应用VLC或者FFmpeg这些器用作念体式调遣或者归拢,经常不作念体式调遣。
二,
本例是爬取电影,为了减少毋庸要的费解,本文将对关联网站信息作念一个覆盖
badnews 丝袜图片
OK,该网站是js加密的视频网站,至少线路了它的前端是js
图片
图片
下载下来的m3u8文献内容大体如下:
#注 m3u8是加密的索引文献,视频统统这个词是由打散的ts文献构成,播放法规什么的依赖于此文献内的界说。
图片
#EXT-X-KEY:METHOD=AES-128,URI="/GC9085SGN/hls/key.key 这一段暗示视频是礼聘aes-128加密算法加密的,何况带有key,key 的存放地址是网站首页+/GC9085SGN/hls/key.key
ts文献是莫得目标平直看的,因为,有key加密,如果莫得加密,那么也只是是一个小片断汉典。
OK,现在的任务便是通过m3u8这个索引文献将该文献内界说的统统ts文献(也便是视频碎屑文献)爬取下来,并将统统ts文献归拢,归拢后的文献便是解密出来的不错平直看的视频文献了。
那么,保存有统统这个词m3u8文献信息的便是以下贯穿了,也便是说赢得ts文献是从这个贯穿驱动:
图片
三,
Python编程,确认m3u8文献,爬取ts文献:
GC5498WCU是js加密的sn,这个每一个视频都是不同的,因此,代码里要和URL里的一致,整个是三个地点触及。auth_key 是ID号,
import requests import re import os def ts_long(): headers = { "Accept": "*/*", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "keep-alive", "sec-ch-ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"97\", \"Chromium\";v=\"97\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"Windows\"", "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "cors", "Sec-Fetch-Site": "cross-site", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36" } url = 'https://xxxxx/GC5498WCU/hls/index.m3u8?auth_key=1683086690-3uw3vaj5c3kityoxiuapmegw8ywv7clg-0-259993e937aa27591a3907a3a92b07fd' resp = requests.get(url) data = resp.textprint(data) print("1111111111") print(len(data),type(data)) indexs_list = re.findall(r'/GC5498WCU/hls/(.*)', data) #indexs_key = re.findall(r'1682852153(.*?)',data) print(indexs_list,len(indexs_list)) for i in range(0, len(indexs_list)): print(i) print(indexs_list[i]) thisname = re.findall(r'.*.ts', indexs_list[i]) print(thisname,type(thisname)) name = ''.join(thisname) print(name,type(name)) uri = 'https://xxxxxxx.cn/GC5498WCU/hls/{}'.format(indexs_list[i]) print(uri)res = requests.get(uri, headers=headers) data1 = res.content f_path = '\123' with open(f_path + name, 'wb') as fp: fp.write(data1) print(name,'下载完成!!') ts_long()
图片
代码运行的神态是这么的:
图片
四,
FFmpeg归拢ts文献
FFmpeg下载地址:
Builds - CODEX FFMPEG @ gyan.dev
https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-2023-04-30-git-e7c690a046-full_build.7z
图片
FFmpeg归拢ts文献有两种样式,一种样式是网罗,平直通过m3u8的网罗地址下载归拢,大体号令如下:
E:\新桌面\ffmpeg-2023-04-30-git-e7c690a046-full_build\ffmpeg-2023-04-30-git-e7c690a046-full_build\bin\ffmpeg.exe -allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" -i https://xxxxx.cn/GC9093CRU/hls/index.m3u8?auth_key=1683208754-gp2c9xsv9nay1wgcjwtc6xc9ifnypeyg-0-5ffb80c2f15da85c32b0a643ffb0677d E:\新桌面\xxxx\4444.mp4
好像输出是这么的:
图片
第二种样式比拟费解,关联词速率十分的快,也便是土产货的ts文献归拢,由于ts文献是加密的,因此,需要key.key 文献,m3u8文献,并对m3u8文献作念修改(ts文献旅途修改为土产货旅途):
(文献修改比拟费解,不外有宏录制还算比拟粗浅的吧,怎样批量修改见我的博文:vim的宏录制和应用实例(文本剪辑飞一般的嗅觉)_录制宏的例子_晚风_END的博客-CSDN博客)
C:\Users\adminsss\PycharmProjects\untitled\venv\ 这个旅途是我的Python跑的旅途,前边下载的ts文献,不知谈什么原因都加了一个S,因此,也曾使用宏解决掉,key.key的旅途亦然土产货的,ts文献亦然修改为土产货的,由于是土产货归拢,因此,归拢出来的文献十分明晰,莫得音视不同步的情况。
#EXTM3U#EXT-X-VERSION:3#EXT-X-TARGETDURATION:8#EXT-X-PLAYLIST-TYPE:VOD#EXT-X-MEDIA-SEQUENCE:0#EXT-X-KEY:METHOD=AES-128,URI="C:\\Users\\adminsss\\Desktop\\key.key"#EXTINF:5.067,C:\Users\adminsss\PycharmProjects\untitled\venv\SvMNMI3F0.ts#EXTINF:8.333,C:\Users\adminsss\PycharmProjects\untitled\venv\S1CGCFR76.ts#EXTINF:8.333,C:\Users\adminsss\PycharmProjects\untitled\venv\SWOYtWIYD.ts#EXTINF:8.333,C:\Users\adminsss\PycharmProjects\untitled\venv\SnqD9lyW7.ts#EXTINF:8.333,。。。。略微略
然后掀开cmd,输入以下号令即可:
图片
也便是
ffmpeg.exe -allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" -i index.m3u8 -c copy 12323.mp4
上头的例子里,我都是用的十足旅途,m3u8 文献存放在桌面了,-allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" 这些必须要有,不然会报错,凯旋归拢的神态:
图片
由于cmd是在system32目次下,因此,归拢出来的文献也在这个目次下,诚然,你不错指定输出的旅途,我偷懒了汉典。
OK,ts文献归拢就暂时先容到这里。
条记选录旧址:https://blog.csdn.net/alwaysbefine/article/details/130477778
ffpmeg归拢号令骨子操作条记:
ffmpeg.exe -allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" -i m3u8 文献所在旅途\index.m3u8 -c copy 归拢后音视频文献保存旅途\12323.mp4
如果ffmpeg.exe所在bin目次在环境变量中有斥地,施行时不错省去填写旅途
如果m3u8文献不在桌面,施行时不错指定文献所在旅途
施行归拢后的文献也不错指定旅途保存色妹妹
本站仅提供存储工作,统统内容均由用户发布,如发现存害或侵权内容,请点击举报。