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站上看到喜歡的視頻想保存下來(lái)時(shí),怎么辦呢?
轉(zhuǎn)入正題,本篇推文主要介紹如何將B站上把喜歡的視頻下載下來(lái),幫助更多需要學(xué)習(xí)的小伙伴,詳細(xì)步驟如下:
網(wǎng)頁(yè)分析 視頻下載方法 成果展示微信視頻號(hào)的加入,再度引燃了短視頻領(lǐng)域,今天我們爬取B站的每天播放量最多的小視頻,其他類型的視頻可以參考這個(gè)方法。
網(wǎng)頁(yè)分析
網(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ù)取出來(lái),把 next_offset 寫成變量值,用 JSON 的格式返回到目標(biāo)網(wǎng)頁(yè)即可。
視頻下載方法
上一部分已對(duì)網(wǎng)頁(yè)進(jìn)行了分析,現(xiàn)在我們可以利用requests.get方法來(lái)獲取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. IntelliJ IDEA導(dǎo)入jar包的方法2. Python requests庫(kù)參數(shù)提交的注意事項(xiàng)總結(jié)3. 詳談ajax返回?cái)?shù)據(jù)成功 卻進(jìn)入error的方法4. python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程5. vue-electron中修改表格內(nèi)容并修改樣式6. JavaScript中l(wèi)ayim之整合右鍵菜單的示例代碼7. python操作mysql、excel、pdf的示例8. 匹配模式 - XSL教程 - 49. 通過Python pyecharts輸出保存圖片代碼實(shí)例10. javascript實(shí)現(xiàn)雪花飄落效果
