概述
说到 Python 实战示例,肯定不能不提网络爬虫,Python 简介的语法和强大的数据处理能力以及一些成熟的框架成为做爬虫项目工程师的最爱,那么本篇博客就介绍利用 Python 来解析视频网站视频源播放地址。
说到这个就再顺便介绍一下 Kodi,其实就是 XBMC 的前身,我最早接触 Python 其实也是缘由一个 关于 XBMC 的项目,Kodi的很多插件就是用 Python 来写的,本篇博客的爱奇艺视频解析原理也是参考了 Kodi 的插件,为了便于理解,做了一些简化,只保留了一些基本的功能。
大家可以参考这个开源的 Kodi插件。
前面我也写过一片关于如何分析爱奇艺视频播放地址的文章,大家也可以参考一下XBMC视频插件开发系列–网页数据解析
正文
废话不多说,现在开始进入正题。
做爬虫,网络请求是必不可少的,那么现在我们就先写一个网络数据请求的方法出来。
网络请求方法
1 | def getHttpData(url): |
用百度主页来测试一下,OK,可以抓取到数据。
获取分类列表
我们进入爱奇艺视频主页,我们会看到视频分类列表,点击这个列表,比如电影,就进入电影的分类页面,这个时候再点击一个检索条件,比如近期热门,就进入了分类检索页面。那么我们的解析工作也就从这个页面开始。
首先我们点击电影,发现网址变为:http://list.iqiyi.com/www/1/----------------iqiyi--.html。
再点击电影频道下方的免费分类:http://list.iqiyi.com/www/1/----------0---11-1-1-iqiyi--.html。
再点击电视剧频道:http://list.iqiyi.com/www/2/----------------iqiyi--.html。
多点击几个你就会得到这样的规律:
频道对应的是 http://list.iqiyi.com/www/<频道>/—————-iqiyi–.html,后面的 - 分割的各种检索条件,比如资费、地区和类型等等。
通过这种方式我们可以把频道对应的频道ID、排序方式ID和付费类型ID给整理好:
1 | CHANNEL_LIST = [['电影', '1'], ['电视剧', '2'], ['纪录片', '3'], ['动漫', '4'], ['音乐', '5'], ['综艺', '6'], ['娱乐', '7'],['旅游', '9'], ['片花', '10'], ['教育', '12'], ['时尚', '13']] |
那么就可以把获取视频类型的方法给写出来:
1 | def rootList(): |
通过这个方法,组装了各个分类视频需要的一些参数,这里把他们打印出来,根据需要再调用下面的方法获取各个视频。
1 | 电影 |
获取视频列表
有了视频分类列表,那么下一步就是获取你需要的视频列表以及每个视频所对应的播放页面地址了,先看代码吧,这里时主要来获取电影分类的,解析原理请看代码中的注释:
1 | # id c1 c2 c3 c4 c5 c11 c12 c14 |
调用方法:
1 | name = '电影' |
结果:
1 | 反转人生 |
获取视频播放地址
通过上一个方法我们可以得到一个视频列表以及该视频的播放页面地址,这里我们就选择《密战》这部电影来介绍吧。
1 | def getVMS(tvid, vid): |
这里获得的urlhttp://cache.m.iqiyi.com/mus/870139400/ab59ce8ca82428c9a62cbaf9596d061c/afbe8fd3d73448c9//20171214/02/26/28e78579e4bfa8dcb7266c0f7487670a.m3u8?qd_originate=tmts_py&tvid=870139400&bossStatus=0&qd_vip=0&px=&qd_src=3_31_312&prv=&previewType=&previewTime=&from=&qd_time=1521815439747&qd_p=0e7bff72&qd_asc=2d335d24c5a9412e7da82ee3e003155c&qypid=870139400_04022000001000000000_4&qd_k=cd5ab91d76256006d732d157ce8ee616&isdol=0&code=2&qd_s=otv&vf=5299931f645288f5664953a7f30d65ea&np_tag=nginx_part_tag
就是视频地址的url,根据这个url取得数据是m3u8格式的播放地址。这里可能要根据所使用播放器的m3u8的支持形式做一些转化。
其实这些分段的地址单个拿出来都是可以播放的:
1 | http://dx.data.video.qiyi.com/videos/v0/20171214/02/26/d2c83af6c58ccbd91525ef8eee950886.ts?qdv=1&qypid=870139400_04022000001000000000_4&start=0&end=334466&hsize=2161&tag=0&v=&contentlength=285384&qd_uid=&qd_vip=0&qd_src=3_31_312&qd_tm=1521816060630&qd_ip=0e7bff72&qd_p=0e7bff72&qd_k=95668376716c9dcf32e2fbd6597c6f40&sgti=&dfp=&qd_sc=947aee71a7bc4e65d241aeb5a4657439 |
好了,关于爱奇艺视频爬虫就介绍到这里。