Python爬虫实战案例:爬取爱奇艺VIP视频

转载 2018年01月02日 00:00:00

点击上方“程序员大咖”,选择“置顶公众号”

关键时刻,第一时间送达!

一、实战背景


爱奇艺的VIP视频只有会员能看,普通用户只能看前6分钟。比如加勒比海盗5的URL:http://www.iqiyi.com/v_19rr7qhfg0.html#vfrm=19-9-0-1



我们怎么免费看VIP视频呢?一个简单的方法,就是通过旋风视频VIP解析网站。URL:http://api.xfsub.com/

这个网站为我们提供了免费的视频解析,它的通用解析方式是:

 http://api.xfsub.com/index.php?url=[播放地址或视频id]

比如,对于绣春刀这个电影,我们只需要在浏览器地址栏输入:

 http://api.xfsub.com/index.php?url=http://www.iqiyi.com/v_19rr7qhfg0.html#vfrm=19-9-0-1

这样,我们就可以在线观看这些VIP视频了:



但是这个网站只提供了在线解析视频的功能,没有提供下载接口,如果想把视频下载下来,我们就可以利用网络爬虫进行抓包,将视频下载下来。


二、实战升级


分析方法相同,我们使用Fiddler进行抓包:


我们可以看到,有用的请求并不多,我们逐条分析。我们先看第一个请求返回的信息。



可以看到第一个请求是GET请求,没有什么有用的信息,继续看下一条。


我们看到,第二条GET请求地址变了,并且在返回的信息中,我们看到,这个网页执行了一个POST请求。POST请求是啥呢?它跟GET请求正好相反,GET是从服务器获得数据,而POST请求是向服务器发送数据,服务器再根据POST请求的参数,返回相应的内容。这个POST请求有四个参数,分别为time、key、url、type。记住这个有用的信息,我们在抓包结果中,找一下这个请求,看看这个POST请求做了什么。


很显然,这个就是我们要找的POST请求,我们可以看到POST请求的参数以及返回的json格式的数据。其中url存放的参数如下:

    xfsub_api\/url.php?key=02896e4af69fb18f70129b6046d7c718&time=1505724557&url=http%3A%2F%2Fwww.iqiyi.com%2Fv_19rr7qhfg0.html&type=&xml=1

这个信息有转义了,但是没有关系,我们手动提取一下,变成如下形式:

    xfsub_api/url.php?key=02896e4af69fb18f70129b6046d7c718&time=1505724557&url=http://www.iqiyi.com/v_19rr7qhfg0.html&type=&xml=1

我们已经知道了这个解析视频的服务器的域名,再把域名加上:

    http://api.xfsub.com/xfsub_api\url.php?key=02896e4af69fb18f70129b6046d7c718&time=1505724557&url=http://www.iqiyi.com/v_19rr7qhfg0.html&type=&xml=1

这里面存放的是什么东西?不会视频解析后的地址吧?我们有浏览器打开这个地址看一下:

果然,我们可以看到视频地址近在眼前啊,URL如下:

    http://disp.titan.mgtv.com/vod.do?fmt=4&pno=1121&fid=1FEA2622E0BD9A1CA625FBE9B5A238A6&file=/c1/2017/09/06_0/1FEA2622E0BD9A1CA625FBE9B5A238A6_20170906_1_1_705.mp4

我们再打开这个视频地址:


瞧,我们就这样得到了这个视频在服务器上的缓存地址。根据这个地址,我们就可以轻松下载视频了。


PS:需要注意一点,这些URL地址,都是有一定时效性的,很快就会失效,因为里面包含时间信息。所以,各位在分析的时候,要根据自己的URL结果打开网站才能看到视频。


接下来,我们的任务就是编程实现我们所分析的步骤,根据不同的视频播放地址获得视频存放的地址。

现在梳理一下编程思路:

  • 用正则表达式匹配到key、time、url等信息。

  • 根据匹配的到信息发POST请求,获得一个存放视频信息的url。

  • 根据这个url获得视频存放的地址。

  • 根据最终的视频地址,下载视频。

三、编写代码


编写代码的时候注意一个问题,就是我们需要使用requests.session()保持我们的会话请求。简单理解就是,在初次访问服务器的时候,服务器会给你分配一个身份证明。我们需要拿着这个身份证去继续访问,如果没有这个身份证明,服务器就不会再让你访问。这也就是这个服务器的反爬虫手段,会验证用户的身份。




  • 来自:Jack-Cui

  • https://github.com/Jack-Cherish/python-spider

  • 程序员大咖整理发布,转载请联系作者获得授权

【点击成为Python大神】

Python3网络爬虫(八):爱奇艺等主流视频网站的VIP视频破解(在线观看+视频下载)

爱奇艺等主流视频网站的VIP视频破解(在线观看+视频下载) 没有会员,想在线观看或下载爱奇艺、PPTV、优酷、网易公开课、腾讯视频、搜狐视频、乐视、土豆、A站、B站等主流视频网站的VIP视频?又不想...
  • c406495762
  • c406495762
  • 2017年05月07日 16:23
  • 23013

python爬取小视频

python爬取小视频 python简单爬虫小程序, python 2.7.12 urllib.urlretrieve
  • Martin201609
  • Martin201609
  • 2016年11月22日 13:18
  • 6159

python实现vip视频解析爬取

转载请注明作者和出处:http://blog.csdn.net/c406495762  运行平台: Windows  Python版本: Python3.x  IDE: Sublime text...
  • joe_niu
  • joe_niu
  • 2018年01月10日 20:59
  • 173

python爬虫爬取好看的图片

遇到好看的图片你还在一张张用鼠标点击保存?作为一个IT从业者那就out了。。。必须高大上起来 今天给大家介绍如何用爬虫爬取好看的图片,话不多说,开始。。。。。 首先小伙伴们需要确保...
  • u012135736
  • u012135736
  • 2017年08月09日 17:05
  • 452

python3自动下载优酷视频小程序

我们一般都在优酷里看一些好玩的视频,有时候看到精彩的就想下载到本地保存起来留作纪念,在win下可以用维棠等软件下载,但苦了用linux的孩子们。尽管chrome和firefox的一些插件可以下载,但有...
  • littlethunder
  • littlethunder
  • 2014年01月13日 20:30
  • 17535

Python的验证码识别,模拟ajax请求,爬取优酷会员(滑稽)

首先想写一个爬取一个网站的优酷会员分享,但是是要输入验证码。 首先,我用谷歌分析其验证码的请求。然后拼接url 去访问发现做了限制那么应该是做了检测对请求头。 复制刷新验证码图片的请求头。自己...
  • qq_28295425
  • qq_28295425
  • 2017年02月12日 09:58
  • 1309

Python爬虫-爬取爆米花视频下载至本地

打开爆米花的网站,然后打开其中一个视频: 打开F12,然后刷新,可以看到: 这个URL为视频的真实地址: http://59.56.28.122/vm48002.baomihua.com...
  • suwenkun1126
  • suwenkun1126
  • 2017年10月12日 23:49
  • 998

优酷视频下载爬虫

之前一直使用flcvd下载优酷视频,这周看到老师讲的爬虫。手痒痒了。于是捣腾了下!从优酷页面爬取视频页面,访问flcvd 抓取下载地址,生成迅雷下载列表。 通过爬虫对正则有更深入的理解。尤其是在优酷...
  • yzh_2017
  • yzh_2017
  • 2016年12月17日 13:27
  • 2848

python爬取m3u8连接的视频

要求:输入m3u8所在url,且ts视频与其在同一路径下#!/usr/bin/env/python #_*_coding:utf-8_*_ #Data:17-10-08 #Auther:苏莫 #Lin...
  • lingluofengzang
  • lingluofengzang
  • 2017年10月04日 23:49
  • 1178

爱奇艺视频网站视频破解思路

现在总结实时破解奇艺视频的方法: 仍以烽火佳人第1集 http://www.iqiyi.com/v_19rrhdwxcg.html 为例进行说明: (1)首先根据上述url获取对应的html代码,利用...
  • tao_627
  • tao_627
  • 2014年02月06日 21:14
  • 11068
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python爬虫实战案例:爬取爱奇艺VIP视频
举报原因:
原因补充:

(最多只允许输入30个字)