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)先的年輕人娛樂(lè)、文化社區(qū),該網(wǎng)站于2009年6月26日創(chuàng)建,被粉絲們親切的稱(chēng)為“B站”。
B站之所以火,是因?yàn)槿の杜c知識(shí)并存。它是一個(gè)重度宅腐二次元集結(jié)地。B站包含動(dòng)漫、漫畫(huà)、游戲,也有很多由繁到簡(jiǎn)、五花八門(mén)的視頻,很多冷門(mén)的軟件和繪畫(huà)技巧在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站的每天播放量最多的小視頻,其他類(lèi)型的視頻可以參考這個(gè)方法。
網(wǎng)頁(yè)分析
網(wǎng)址為:
'http://vc.bilibili.com/p/eden/rank#/?tab=全部'
我們可以看到Request URL這個(gè)屬性值,我們向下滑動(dòng)加載視頻的過(guò)程中,發(fā)現(xiàn)只有這段url是不變的。next_offset 會(huì)一直變化,我們可以猜測(cè),這個(gè)可能就是獲取下一個(gè)視頻序號(hào),我們只需要把這部分參數(shù)取出來(lái),把 next_offset 寫(xiě)成變量值,用 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': '今日熱門(mén)',
'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() # 開(kāi)始時(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í)有所幫助,也希望大家多多支持腳本之家。
- 基于python對(duì)B站收藏夾按照視頻發(fā)布時(shí)間進(jìn)行排序的問(wèn)題
- 教你如何使用Python下載B站視頻的詳細(xì)教程
- 利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼
- ffmpeg+Python實(shí)現(xiàn)B站MP4格式音頻與視頻的合并示例代碼
- python 爬取B站原視頻的實(shí)例代碼
- Python如何爬取b站熱門(mén)視頻并導(dǎo)入Excel
- python3寫(xiě)爬取B站視頻彈幕功能
- python基于tkinter制作m3u8視頻下載工具
- python 視頻下載神器(you-get)的具體使用
- Python爬蟲(chóng)之App爬蟲(chóng)視頻下載的實(shí)現(xiàn)
- python 使用tkinter+you-get實(shí)現(xiàn)視頻下載器
- python b站視頻下載的五種版本
相關(guān)文章
python+flask實(shí)現(xiàn)API的方法
這篇文章主要為大家詳細(xì)介紹了python+flask實(shí)現(xiàn)API的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11
Python練習(xí)之制作企業(yè)獎(jiǎng)金計(jì)算器
在本篇博客中,我們將使用Python代碼解決一個(gè)企業(yè)獎(jiǎng)金計(jì)算的問(wèn)題,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06
Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼
這篇文章主要介紹了Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Python+OpenCV圖片局部區(qū)域像素值處理詳解
這篇文章主要為大家詳細(xì)介紹了Python+OpenCV圖片局部區(qū)域像素值處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
PyTorch快速搭建神經(jīng)網(wǎng)絡(luò)及其保存提取方法詳解
本篇文章主要介紹了PyTorch快速搭建神經(jīng)網(wǎng)絡(luò)及其保存提取方法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
使用python爬蟲(chóng)實(shí)現(xiàn)子域名探測(cè)問(wèn)題
子域名枚舉是為一個(gè)或多個(gè)域查找子域的過(guò)程,它是信息收集階段的重要組成部分,這篇文章主要介紹了使用python實(shí)現(xiàn)子域名探測(cè),需要的朋友可以參考下2022-07-07
Python字符串的15個(gè)基本操作(小結(jié))
這篇文章主要介紹了Python字符串的15個(gè)基本操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

