今天在某个网站上看到了自己想看的电影。想下载下来,但是网站没有提供下载功能。这可咋办嘞?身为码农的我敲了敲自己的脑袋。看来还得自己动手了。
0x01 准备工具
- chrome浏览器 (调试网页用的)
- notepad++(写代码用的)
- python2.6 (运行我们写的代码用的)
0x02 网页分析
- 在chrome输入播放电影的网址
- 在打开的网页上按一下键盘上的F12键,打开 开发者工具
- 把开发者工具中的标签页切换到Network标签(图1中箭头1所指)
- 在Network标签中 选中 XHR 过滤请求的链接(图1中箭头2所指)
- 这个文件2rES0ai2.m3u8,扩展名是m3u8就是我们需要的(图1中箭头3所指)
如图所示:
0x03 分析m3u8格式文件
m3u8 文件实质是一个播放列表,其可能是一个媒体播放列表,或者是一个主列表.但无论是哪种播放列表,其内部文字使用的都是 utf-8 编码。从网站搜索了一下看,吧啦吧啦一大堆格式介绍。对比一下请求的数据 每行开头是 # 号的都暂时不用管。获取里面的请求链接,类似xxx.ts样子的。
0x04 编写下载逻辑
#!/usr/bin/python
#coding=utf-8
import urllib2
file = open("2rES0ai2.m3u8")
code = open("2rES0ai2.ts