爬虫,找不到视频文件 url

2020-01-06 19:40:27 +08:00
 viiii

打算爬某网站视频内容练手(短视频),检查 html 源码发现没有任何 mp4 或 m3u8 等格式的文件 url,刷新并开始播放后,看 F12 里的 Network 也只发现加载了几个 .ts 格式文件( index0.ts/index1.ts/index2.ts ),一脸懵逼中……请问这种情况该如何下手?

PS,播放器使用的 DPlayer,git 地址: https://github.com/MoePlayer/DPlayer

5428 次点击
所在节点    Python
17 条回复
dosmlp
2020-01-06 19:51:58 +08:00
也可能是通过 ws 传的数据
Curtion
2020-01-06 19:54:53 +08:00
HLS 协议
viiii
2020-01-06 21:40:40 +08:00
@Curtion 查了下定义,感觉应该是 HLS 协议,请问这种该如何爬取视频资源?
用 scrapy 具体怎么做?
Tink
2020-01-06 21:50:04 +08:00
都有 ts 文件了扒下来拼接啊
loopinfor
2020-01-06 21:59:58 +08:00
.ts 就是分割出来的视频片段
ctro15547
2020-01-06 22:15:02 +08:00
抓包 。也可以把所有的 ts 文件 download 下来 用 ffmpeg 拼一下
cz5424
2020-01-07 00:25:17 +08:00
某些 M3u8 文件实际上也只是记录 ts 的地址,记事本打开可以看到
also24
2020-01-07 00:40:50 +08:00
所以网站地址呢?没有网站地址凭空猜测么?
mumbler
2020-01-07 01:20:53 +08:00
视频地址被加密了,通过一系列 JS 计算才能拿到真实视频地址,这个过程叫视频解析,普通爬虫只能爬公开数据,这种加密数据需要先解析再下载,HlS 下载完还需要拼接
locoz
2020-01-07 01:50:52 +08:00
@mumbler #9 🤔千万不要把“公开数据”这个词乱用啊…容易引起混淆的…只要没有权限要求、表面上是个普通用户打开了不需要做啥身份校验操作就能看的就可以叫“公开数据”了。
locoz
2020-01-07 01:58:26 +08:00
你可以换个思路:先抓个包看看,一般来说,页面加载完毕且视频还在加载的时候,仍然有在进行通信的就大概率会跟这个视频有关系了。
因为正常来说不可能还有除了视频以外的其他大型资源需要加载了,而如果有大量用户操作日志之类的东西混淆视听的话又很容易分辨,可以直接过滤掉。
在简单筛选一下之后就可以找出来了。找到之后如果请求中有加密参数的话就翻 js 吧…
l4ever
2020-01-07 08:34:25 +08:00
1.看看有没有 m3u8. 现在流行 ts 文件加密, 都是用 AES-128-CFB 的. m3u8 里面有 Key 偏移值. 看看里面到底配置了加密没有. 通常 key 是另外一个 http 请求去获取的.仔细分析一下.

2.根据 m3u8 提供的 ts 文件地址下载 ts 文件.

3.如果加密了, 还要解密 ts

4.合并 ts
imaning
2020-01-07 08:43:39 +08:00
@l4ever key 是对视频内容加密用的,不是加密 url 的。他既然能请求到 ts 地址,肯定就有 m3u8 地址,只是可能他没注意到而已。关键是要找到 m3u8 地址才行。
l4ever
2020-01-07 09:04:22 +08:00
@imaning 我说的就是对 ts 加密啊?难道我的表达能力有问题?你是没看懂?
annielong
2020-01-07 09:35:49 +08:00
有 index0.ts 肯定有 m3u8,一般没仔细看,最多是没有明确 m3u8,但是有 api 获取了 m3u8 的内容,检查所有 post
pandait
2020-01-07 12:56:26 +08:00
用 ts 还原就好了啊。
chenliangngng
2020-01-07 13:10:31 +08:00
马克,现在各视频站技术水平比以前高好多,应该就是这两年才改的,为什么呢?/摊手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/635581

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX