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

一、实战背景
爱奇艺的VIP视频只有会员能看 , 普通用户只能看前6分钟 。
比如加勒比海盗5的URL:
私信小编01即可获取大量Python学习资料
#vfrm=19-9-0-1
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
我们怎么免费看VIP视频呢?一个简单的方法 , 就是通过旋风视频VIP解析网站 。 URL:
这个网站为我们提供了免费的视频解析 , 它的通用解析方式是:
index.php?url=[播放地址或视频id]比如 , 对于绣春刀这个电影 , 我们只需要在浏览器地址栏输入:
index.php?url=#vfrm=19-9-0-1【Python爬虫实战案例:采集爱奇艺VIP视频】这样 , 我们就可以在线观看这些VIP视频了:
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
但是这个网站只提供了在线解析视频的功能 , 没有提供下载接口 , 如果想把视频下载下来 , 我们就可以利用网络爬虫进行抓包 , 将视频下载下来 。
二、实战升级
分析方法相同 , 我们使用Fiddler进行抓包:
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
我们可以看到 , 有用的请求并不多 , 我们逐条分析 。 我们先看第一个请求返回的信息 。
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
可以看到第一个请求是GET请求 , 没有什么有用的信息 , 继续看下一条 。
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
我们看到 , 第二条GET请求地址变了 , 并且在返回的信息中 , 我们看到 , 这个网页执行了一个POST请求 。 POST请求是啥呢?它跟GET请求正好相反 , GET是从服务器获得数据 , 而POST请求是向服务器发送数据 , 服务器再根据POST请求的参数 , 返回相应的内容 。 这个POST请求有四个参数 , 分别为time、key、url、type 。 记住这个有用的信息 , 我们在抓包结果中 , 找一下这个请求 , 看看这个POST请求做了什么 。
Python爬虫实战案例:采集爱奇艺VIP视频文章插图
很显然 , 这个就是我们要找的POST请求 , 我们可以看到POST请求的参数以及返回的json格式的数据 。 其中url存放的参数如下:
xfsub_api\/url.php?key=02896e4af69fb18f70129b6046d7c718pno=1121 --tt-darkmode-color: #FF6251;">三、编写代码
编写代码的时候注意一个问题 , 就是我们需要使用requests.session()保持我们的会话请求 。 简单理解就是 , 在初次访问服务器的时候 , 服务器会给你分配一个身份证明 。 我们需要拿着这个身份证去继续访问 , 如果没有这个身份证明 , 服务器就不会再让你访问 。 这也就是这个服务器的反爬虫手段 , 会验证用户的身份 。
Python爬虫实战案例:采集爱奇艺VIP视频文章插图


    推荐阅读