
B站之所以火,是因為趣味與知識並存。它是一個重度宅腐二次元集結地。B站包含動漫、漫畫、游戲,也有很多由繁到簡、五花八門的視頻,很多冷門的軟件和繪畫技巧在B站都可以找到完整的教學視頻。正如一句“你在B站看番,我在B站學習”,B站還是有一些質量比較好的學習視頻。當你在B站上看到喜歡的視頻想保存下來時,怎么辦呢?
很多人學習蟒蛇,不知道從何學起。 很多人學習尋找python,掌握了基本語法之后,不知道在哪里案例上手。 很多已經可能知道案例的人,卻不怎么去學習更多高深的知識。 這三類人,我給大家提供一個好的學習平台,免費獲取視頻教程,電子書,以及課程的源代碼! QQ群:101677771
轉入正題,本篇推文主要介紹如何將B站上把喜歡的視頻下載下來,幫助更多需要學習的小伙伴,詳細步驟如下:
- 網頁分析
- 視頻下載方法
- 成果展示
網頁分析
微信視頻號的加入,再度引燃了短視頻領域,今天我們爬取B站的每天播放量最多的小視頻,其他類型的視頻可以參考這個方法。

網址為:
'
http://vc.bilibili.com/p/eden/rank#/?tab=全部'
我們可以看到Request URL這個屬性值,我們向下滑動加載視頻的過程中,發現只有這段url是不變的。next_offset 會一直變化,我們可以猜測,這個可能就是獲取下一個視頻序號,我們只需要把這部分參數取出來,把 next_offset 寫成變量值,用 JSON 的格式返回到目標網頁即可。


視頻下載方法
上一部分已對網頁進行了分析,現在我們可以利用requests.get方法來獲取B站上的小視頻。
核心代碼
def get_json(url): headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' } params = { 'page_size': 10, 'next_offset': str(num), 'tag': '今日熱門', 'platform': 'pc' } try: html = requests.get(url, params=params, headers=headers) return html.json() except BaseException: print('request error') pass def download(url,path): start = time.time() # 開始時間 size = 0 headers = { 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' } response = requests.get(url,headers=headers,stream=True) chunk_size = 1024 content_size = int(response.headers['content-length']) if response.status_code == 200: with open(path,'wb') as file: for data in response.iter_content(chunk_size=chunk_size): file.write(data) size += len(data)
成果展示
上一部分我們已經展示了如何用Python下載視頻的方法,下面我們進行效果展示,需要完整版代碼的同學可以在公眾號后台回復:B站代碼
