溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻

發(fā)布時(shí)間:2020-02-26 07:36:38 來(lái)源:網(wǎng)絡(luò) 閱讀:320 作者:pengdongcheng 欄目:編程語(yǔ)言

/1 前言/

還在為在線看小視頻緩存慢發(fā)愁嗎?還在為想重新回味優(yōu)秀作品但找不到資源而憂慮嗎?莫要慌,讓python來(lái)幫你解決,40行代碼教你爬遍小視頻網(wǎng)站,先批量下載后仔細(xì)觀看,豈不美哉!


/2 整理思路/

這類網(wǎng)站一般大同小異,本文就以鳳凰網(wǎng)新聞視頻網(wǎng)站為例,采用倒推的方式,給大家介紹如何通過(guò)流量分析獲得視頻下載的url,進(jìn)而批量下載。


/3 操作步驟/

/3.1 分析網(wǎng)站,找出網(wǎng)頁(yè)變化規(guī)律/

1、首先找到網(wǎng)頁(yè),網(wǎng)頁(yè)詳情如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


2、該視頻網(wǎng)站分為人物、娛樂(lè)、藝術(shù)等不同類型,本文以體育版塊為例,下拉到底端,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


3、根據(jù)上圖的結(jié)果,我們可以發(fā)現(xiàn)該網(wǎng)站是動(dòng)態(tài)網(wǎng)頁(yè),打開(kāi)瀏覽器自帶流量分析器,點(diǎn)擊加載更多,找出網(wǎng)頁(yè)變化規(guī)律,第一個(gè)就是,請(qǐng)求網(wǎng)址和返回結(jié)果如下圖。標(biāo)記處為頁(yè)碼,此時(shí)是第3頁(yè)。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


4、返回結(jié)果包含視頻的title、網(wǎng)頁(yè)url、guid(相當(dāng)于每個(gè)視頻的標(biāo)志,后續(xù)有用)等信息,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


5、每個(gè)網(wǎng)頁(yè)里邊包含24個(gè)視頻,打印出來(lái)是這樣的,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻



/3.2 尋找視頻網(wǎng)頁(yè)地址規(guī)律/

1、先打開(kāi)流量分析器,播放視頻進(jìn)行抓包,找到幾個(gè)mp2t文件,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


2、它們的網(wǎng)址我依次找了出來(lái),放到文本文件中存放起來(lái),以發(fā)現(xiàn)它們之間的規(guī)律,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


3、大家發(fā)現(xiàn)規(guī)律了嗎?網(wǎng)址中的p26275262-102-9987636-172625參數(shù)就是視頻的guid(上述已經(jīng)得到),只有range_bytes參數(shù)是變化的,而且是從0到6767623,很顯然這是視頻的大小,而且視頻是分段合成的。找到這些規(guī)律之后,接下來(lái)我們需要繼續(xù)進(jìn)行細(xì)挖視頻地址的出處。


/3.3 尋找視頻的下載原始地址/

1、先考慮一個(gè)問(wèn)題,視頻的地址是從哪來(lái)的呢?一般情況下,先在視頻網(wǎng)頁(yè)里看看有沒(méi)有,如果沒(méi)有,我們就在流量分析器里,沿著第一個(gè)分段視頻往上找,肯定是有某個(gè)網(wǎng)址返回了這些信息,很快,我在1個(gè)vdn.apple.mpegurl文件里發(fā)現(xiàn)了下圖這個(gè)。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


2、太驚喜了,這不就是我們要找的信息么,再看看它的url參數(shù),如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


3、上圖參數(shù)看起來(lái)很多的樣子,不過(guò)不用怕。還是利用老辦法,先在網(wǎng)頁(yè)里看看有沒(méi)有,沒(méi)有的話還在流量分析器里往上找,功夫不負(fù)有心人,我找到了下圖這個(gè)。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


4、它的url如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


5、仔細(xì)找找規(guī)律,我們發(fā)現(xiàn)唯一需要變化的就是每個(gè)視頻的guid了,這個(gè)第一步已經(jīng)得到了。另外,返回結(jié)果包含了上述除了vkey的所有參數(shù),而且這個(gè)參數(shù)最長(zhǎng),那該怎么辦呢?

6、不要慌,萬(wàn)一這個(gè)參數(shù)沒(méi)有用呢,先把vkey去掉試一試。果不其然,果然沒(méi)有什么用,現(xiàn)在整個(gè)過(guò)程已經(jīng)捋順了,現(xiàn)在可以擼代碼了。


/3.4 代碼實(shí)現(xiàn)/

1、在代碼里邊,設(shè)置多線程下載,如下圖所示,其中頁(yè)碼可以自己進(jìn)行修改哈。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


2、解析返回參數(shù),json格式的,使用json庫(kù)進(jìn)行處理,如下圖所示。通過(guò)解析,我們可以得到每個(gè)視頻的title、網(wǎng)頁(yè)url、和guid。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


3、模擬請(qǐng)求,獲得除Vkey外的參數(shù),如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


4、利用上一步中的參數(shù),進(jìn)行模擬請(qǐng)求,獲得包含分段視頻的信息,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


5、將分段視頻合并,保存在1個(gè)視頻文件,并以title命名,如下圖所示。

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻



/3.5 效果呈現(xiàn)/

1、當(dāng)程序運(yùn)行之后,我們便可以看到網(wǎng)頁(yè)中的視頻嘩啦嘩啦的在本地文件夾中進(jìn)行呈現(xiàn),如下圖所示。接下來(lái),媽媽再也不用擔(dān)心我喜歡的視頻找不著了,真香!

40行代碼教你利用Python網(wǎng)絡(luò)爬蟲(chóng)批量抓取小視頻


當(dāng)然了,如果想更加直觀的話,可以在代碼中加入維測(cè)信息,這個(gè)大家可以自己手動(dòng)設(shè)置一下。


/4 總結(jié)/

本文主要基于Python網(wǎng)絡(luò)爬蟲(chóng),利用40行代碼,針對(duì)小視頻網(wǎng)頁(yè),進(jìn)行批量獲取網(wǎng)頁(yè)視頻到本地。方法簡(jiǎn)單易行,而且行之有效,歡迎大家踴躍嘗試。如果想獲取本文代碼,請(qǐng)zhi姐訪問(wèn)github.com/cassieeric/p,即可獲取代碼鏈接,如果覺(jué)得不差,記得給個(gè)star噢。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI