太厲害了!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,交流指正。

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