Python爬取B站視頻的實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)

這篇文章主要講解了Python爬取B站視頻的實(shí)現(xiàn)方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為宜川企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,宜川網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

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)建,被粉絲們親切的稱為“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è)方法。

Python爬取B站視頻的實(shí)現(xiàn)方法​

網(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 寫成變量值,用 JSON 的格式返回到目標(biāo)網(wǎng)頁(yè)即可。

Python爬取B站視頻的實(shí)現(xiàn)方法

Python爬取B站視頻的實(shí)現(xiàn)方法

視頻下載方法

上一部分已對(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')
    pass

def 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)

網(wǎng)頁(yè)題目:Python爬取B站視頻的實(shí)現(xiàn)方法-創(chuàng)新互聯(lián)
鏈接URL:http://www.muchs.cn/article10/ceocgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、靜態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、服務(wù)器托管網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)