太厉害了!30行代码抓取上万个小姐姐跳舞视频,有点飘了~


大家好,我是菜鸟哥!这个我第481篇原创!今天又给大家带来一个有趣的Python案例分享!学好Python真的是太有用啦!

很多小伙伴在平时看视频的时候,都喜欢看小姐姐的舞蹈视频。今天,小编就和大家一起,通过30行代码,对了,只要30行代码就可以搞定!一起来抓取虎牙视频网站中小姐姐的舞蹈视频,火速来围观吧。

01.视频获取展示

大家在打开虎牙视频后,可以在“星秀/颜值”的类别下找到跳舞的视频,小编粗略的翻阅了一下,每页一共有20个视频,而且一共有500页,所以一共有一万个视频,如果能都下载下来,宅男估计要欢呼了。

02.程序讲解

对于视频的获取,同图片获取相同,都需要得到视频的url地址。我们需要通过分析获取得到每个舞蹈视频的子网页链接,然后在子网页中获取得到视频的url链接。首先,我们来看一下如何获取每个子网页的链接地址。

1).获取子网页链接通过分析网页的源代码,可以发现,主页当中的每个子网页的地址都可以从网页的源代码中获取得到。

所以可以通过requests库来获取网页的源代码,并通过解析网页的源代码来获取得到当前页面中所有子网页的链接地址,程序如下图所示。

程序当中,通过for循环的方式,来构建所有的主网页链接,通过请求并解析网页的源代码来抓取所有的子网页链接,并保存到self.video_urls列表当中。

2).下载视频

相对于子网页的链接地址获取,对于子网页中的视频链接的获取则更加麻烦,需要我们进行分析和解析,如下图所示:

在子网页中,通过在开发者模式下解析网页元素,就可以找到视频的链接地址,接下来我们复制视频的链接地址,然后到network选项下,通过快捷键ctrl+F来搜索”//huya-w20.huya.com/“,就可以找到对应的请求接口链接。

通过对于视频的请求链接分析,可以得到如下的数据链接地址:https://liveapi.huya.com/moment/getMomentContent?&videoId=468682371,上述的链接地址所返回的是json数据内容,我们通过分析json数据就可以找到真正的视频链接地址,其中参数videoId就是视频子网页的地址,例如子网页为https://v.huya.com/play/468682371.html,则videoId的数值为468682371。

下面的地址就是我们通过分析上述的json数据所得到的视频链接地址:

http://huya-w20.huya.com/2109/468682371/yuanhua/d1ab7c7919a1ce0560c2f34ffb8d11fc.mp4?bitrate=1677&client=22&definition=yuanhua&pid=1243890452&scene=vod&vid=468682371

明白了视频的链接地址的获取,接下来我们就可以通过程序来进行视频地址的获取。

程序通过构造json数据的链接地址,然后分析json数据后,抓取视频的链接地址,通过self.SaveVideo来将视频保存到本地文件夹中。通过运行程序,我们便可以不断的抓取小姐姐的跳舞视频。

其实整个的程序非常简单,有兴趣的小伙伴可以动手练习一下,爬虫只是Python里面的冰山一角,做办公自动化,后端开发,大数据分析,数据挖掘才是真正的发挥威力的地方,大家还是要多花时间在数据分析,数据挖掘上面,无论是找工作还是提升业务能力都大有裨益。所以还没有学Python的同学不要犹豫,赶紧上车吧!

【菜鸟学Python】累计原创近400篇趣味干货(爬虫,数据分析,算法,面试指南,原创趣味实战,Python游戏,机器学习),欢迎一起学Python,交流指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章