您好,登錄后才能下訂單哦!
今天小編給大家分享一下怎么用Python爬取b站小視頻的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
b 站小視頻地址:
http://vc.bilibili.com/p/eden/rank#/?tab=全部
我爬取了每日的小視頻排行榜,學會了每日的,爬取本周、本月的就非常簡單了,改個標簽就行,稍后詳細分析會講到。以下是爬取結果。
語言:Python3
工具:Pycharm
主要由 3 部分組成:
get_json():提取目標網頁的 json 數據信息。
downloader():下載小視頻并顯示下載進度。
主函數:循環下載視頻直到下載完畢。
觀察下方參數的變化,發現只有 next_offset 這個字段在變,每次都比前一個多 10。
這就好辦了,我們把參數部分單獨拿出來,把可變的 next_offset 寫成變量,返回目標網頁的 json 數據。
接下來,我把小視頻下載下來,為了美觀,我做了個下載器,顯示下載速度。效果如下。
此處有個地方需注意下,請求目標網頁時必須帶上此網頁的 headers 信息,網站做了反爬操作,否則下載下來的視頻是空的,部分代碼如下。(ps:大家運行代碼時把 headers 換成自己瀏覽器在本網頁的 headers 即可)
主函數中為了提取更多視頻,我們把 next_offset 這個變量做個循壞,然后從 json 數據中提取視頻的標題和可下載的鏈接。觀察下頁面的 json 數據結構就可以輕松獲取文章標題和下載鏈接數據。
為了防止有些視頻沒有提供下載鏈接的情況,我加了異常處理,細心的朋友應該發現了文章前面給的效果圖只有84個視頻,原因就在此。最后,為了防止 ip 被封,設置了隨機等待時間。其實,總體下來,不到 5 分鐘,100 個視頻可以全部下載完畢。
以上就是“怎么用Python爬取b站小視頻”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。