Python如何實(shí)現(xiàn)爬取B站視頻
5月3日晚,央視在《新聞聯(lián)播》前播放了B站青年宣言片《后浪》,這是B站首次登陸央視黃金時(shí)段,今天在朋友圈陸續(xù)看到相關(guān)的視頻。最早用B站的同學(xué)都知道,B站是和A站以異曲同工的鬼畜視頻及動(dòng)漫,進(jìn)入到大眾視野的非主流視頻網(wǎng)站。嗶哩嗶哩現(xiàn)為國(guó)內(nèi)領(lǐng)先的年輕人娛樂、文化社區(qū),該網(wǎng)站于2009年6月26日創(chuàng)建,被粉絲們親切的稱為“B站”。
B站之所以火,是因?yàn)槿の杜c知識(shí)并存。它是一個(gè)重度宅腐二次元集結(jié)地。B站包含動(dòng)漫、漫畫、游戲,也有很多由繁到簡(jiǎn)、五花八門的視頻,很多冷門的軟件和繪畫技巧在B站都可以找到完整的教學(xué)視頻。正如一句“你在B站看番,我在B站學(xué)習(xí)”,B站還是有一些質(zhì)量比較好的學(xué)習(xí)視頻。當(dāng)你在B站上看到喜歡的視頻想保存下來時(shí),怎么辦呢?
轉(zhuǎn)入正題,本篇推文主要介紹如何將B站上把喜歡的視頻下載下來,幫助更多需要學(xué)習(xí)的小伙伴,詳細(xì)步驟如下:
網(wǎng)頁分析 視頻下載方法 成果展示微信視頻號(hào)的加入,再度引燃了短視頻領(lǐng)域,今天我們爬取B站的每天播放量最多的小視頻,其他類型的視頻可以參考這個(gè)方法。
網(wǎng)頁分析
網(wǎng)址為:
’http://vc.bilibili.com/p/eden/rank#/?tab=全部’
我們可以看到Request URL這個(gè)屬性值,我們向下滑動(dòng)加載視頻的過程中,發(fā)現(xiàn)只有這段url是不變的。next_offset 會(huì)一直變化,我們可以猜測(cè),這個(gè)可能就是獲取下一個(gè)視頻序號(hào),我們只需要把這部分參數(shù)取出來,把 next_offset 寫成變量值,用 JSON 的格式返回到目標(biāo)網(wǎng)頁即可。
視頻下載方法
上一部分已對(duì)網(wǎng)頁進(jìn)行了分析,現(xiàn)在我們可以利用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’) passdef download(url,path): start = time.time() # 開始時(shí)間 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)
成果展示
上一部分我們已經(jīng)展示了如何用Python下載視頻的方法,下面我們進(jìn)行效果展示
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))2. PHP循環(huán)與分支知識(shí)點(diǎn)梳理3. 解析原生JS getComputedStyle4. 前端從瀏覽器的渲染到性能優(yōu)化5. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁6. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)7. ASP實(shí)現(xiàn)加法驗(yàn)證碼8. 讀大數(shù)據(jù)量的XML文件的讀取問題9. css代碼優(yōu)化的12個(gè)技巧10. 利用CSS3新特性創(chuàng)建透明邊框三角
