溫馨提示×

溫馨提示×

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

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

怎么用Python爬取b站小視頻

發(fā)布時間:2022-01-14 15:00:49 來源:億速云 閱讀:184 作者:iii 欄目:大數(shù)據(jù)

今天小編給大家分享一下怎么用Python爬取b站小視頻的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

b 站小視頻地址:

http://vc.bilibili.com/p/eden/rank#/?tab=全部

我爬取了每日的小視頻排行榜,學(xué)會了每日的,爬取本周、本月的就非常簡單了,改個標簽就行,稍后詳細分析會講到。以下是爬取結(jié)果。

怎么用Python爬取b站小視頻

項目環(huán)境

語言:Python3
工具:Pycharm

程序結(jié)構(gòu)

怎么用Python爬取b站小視頻

主要由 3 部分組成:

  • get_json():提取目標網(wǎng)頁的 json 數(shù)據(jù)信息。

  • downloader():下載小視頻并顯示下載進度。

  • 主函數(shù):循環(huán)下載視頻直到下載完畢。

代碼分析

怎么用Python爬取b站小視頻

觀察下方參數(shù)的變化,發(fā)現(xiàn)只有 next_offset 這個字段在變,每次都比前一個多 10。

怎么用Python爬取b站小視頻

這就好辦了,我們把參數(shù)部分單獨拿出來,把可變的 next_offset 寫成變量,返回目標網(wǎng)頁的 json 數(shù)據(jù)。

怎么用Python爬取b站小視頻

接下來,我把小視頻下載下來,為了美觀,我做了個下載器,顯示下載速度。效果如下。

怎么用Python爬取b站小視頻

此處有個地方需注意下,請求目標網(wǎng)頁時必須帶上此網(wǎng)頁的 headers 信息,網(wǎng)站做了反爬操作,否則下載下來的視頻是空的,部分代碼如下。(ps:大家運行代碼時把 headers 換成自己瀏覽器在本網(wǎng)頁的 headers 即可)

怎么用Python爬取b站小視頻

主函數(shù)中為了提取更多視頻,我們把 next_offset 這個變量做個循壞,然后從 json 數(shù)據(jù)中提取視頻的標題和可下載的鏈接。觀察下頁面的 json 數(shù)據(jù)結(jié)構(gòu)就可以輕松獲取文章標題和下載鏈接數(shù)據(jù)。

怎么用Python爬取b站小視頻

為了防止有些視頻沒有提供下載鏈接的情況,我加了異常處理,細心的朋友應(yīng)該發(fā)現(xiàn)了文章前面給的效果圖只有84個視頻,原因就在此。最后,為了防止 ip 被封,設(shè)置了隨機等待時間。其實,總體下來,不到 5 分鐘,100 個視頻可以全部下載完畢。

怎么用Python爬取b站小視頻

以上就是“怎么用Python爬取b站小視頻”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI