郑重声明:本文仅用作技术学习,切勿用于商业用途,侵删。
当我们想在线观看爱奇艺、PPTV、优酷、网易公开课、腾讯视频、搜狐视频、乐视、土豆、A站、B站等主流视频网站的VIP视频,却苦于没有会员时,可以使用下面两个视频解析网站:
- VIP视频解析:http://www.vipjiexi.com/
- 无名小站:http://www.wmxz.wang/
这两个网站为我们提供了免费的视频解析,他们的通用解析方式是:
VIP视频解析:http://www.vipjiexi.com/tong.php?url=[播放地址或视频id]
无名小站:http://www.wmxz.wang/video.php?url=[播放地址或视频id]
这样我们就能在线观看VIP视频了!但如果我们想要把视频下载下来呢?下面让我们来分析一下。
(1)目标站点分析
比如我们想要把http://www.iqiyi.com/v_19rr839kro.html这部电影下载下来,使用VIP视频解析网站进行解析http://www.vipjiexi.com/tong.php?url=http://www.iqiyi.com/v_19rr839kro.html,如果你看过我前面写的一篇下载知乎视频的文章,就会知道首先要找到关键的m3u8请求,该请求下面就是一系列ts视频流:
请求这个网址就会得到我们想要的ts视频流链接信息:
足足有1416个。。现在先不考虑怎么下载他们,首先搞明白怎么才能得到m3u8请求的url,也就是这个:https://v.gqzyz.com/2018/04/21/L3p2Fnu95UVusnac/playlist.m3u8。
我们看一下原始请求下面的这个请求,也就是原始请求重定向后的请求,这个请求的Response中就有我们要找的url!
这样就简单了,我们直接请求http://www.wq114.org/tong.php?url=http://www.iqiyi.com/v_19rr839kro.html,解析返回的html页面就能得到m3u8请求的url了。
(2)流程框架
1.获取m3u8请求的URL
请求http://www.wq114.org/tong.php?url=[视频地址],并用正则表达式解析,得到m3u8请求的url。
2.下载视频
使用FFmpeg解析m3u8并下载合并视频。
(3)爬虫代码
# vip_video.py
import re
from utils import *
def get_m3u8_url(html):
pattern = re.compile('<iframe.*?src=.*?url=(.*?)\".*?</iframe>', re.S)
m3u8_url = re.search(pattern, html)
if m3u8_url:
return m3u8_url.group(1)
return None
def download_m3u8(m3u8_url, path, name):
print('准备下载...')
try:
download_path = path + '/'
os.chdir(download_path) # 修改当前工作目录
cmd_str = 'ffmpeg -i "{}" -c copy "{}{}.mp4"'.format(m3u8_url, download_path, name)
p = os.popen(cmd_str)
print(p.readlines())
except Exception:
return None
def run(url, path, name):
real_url = 'http://www.wq114.org/tong.php?url=' + url
html = get_page(real_url)
if html:
m3u8_url = get_m3u8_url(html)
if m3u8_url:
download_m3u8(m3u8_url, path, name)
if __name__ == '__main__':
_url = 'http://www.iqiyi.com/v_19rr839kro.html'
_path = 'E:/PycharmProjects/Video_Crack/video'
_name = 'movie'
run(_url, _path, _name)
参考博文:
https://blog.csdn.net/c406495762/article/details/71334633/
https://blog.csdn.net/liujiabin076/article/details/80376700
https://blog.csdn.net/mummyding/article/details/78887456
ffmpeg安装:https://blog.csdn.net/polyhedronx/article/details/81947539
ffmpeg官方文档:https://www.ffmpeg.org/ffmpeg.html