抓取B站小視頻


抓取B站小視頻的代碼如下:

#請求庫
import requests


#請求頭部信息(用戶代理)
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
}

#定義全局變量
count=1

def video_downloads(url_video):
'''
請求視頻的下載鏈接 把視頻保存到本地
:param url_video: 視頻的下載鏈接
:return:
'''
global count
#請求視頻的下載鏈接,因為請求的視頻是數據流的方式,所以請求方式中要使用stream
response_video=requests.get(url_video,headers=headers,stream=True)
#每次下載的數據大小 1024單位為KB,表示1024KB/s
chunk_size=1024
#判斷請求的視頻下載鏈接是否成功
if response_video.status_code==200:
with open('B站小視頻/{}.mp4'.format(count),'ab')as f:
for data in response_video.iter_content(chunk_size=chunk_size):
f.write(data)
count += 1

def exrta_video_url():
'''
獲取視頻的下載地址,並調用下載函數進行下載
:return:
'''

#請求網頁地址並且獲取到服務器所返回的數據

#1、網頁的請求地址
#url的獲取,在網頁的Network下的XHR中進行查找rquest中的url.如何驗證該URL是否為我們需要查找到的url.可以通過查看review返回的數據
url='https://api.vc.bilibili.com/clip/v1/video/index?page_size=30&need_playurl=0&next_offset=-1&has_more=1&order=&platform=pc'

response_data=requests.get(url,headers=headers).json()
data=response_data.get('data').get('items')
for i in data:
#視頻的下載地址 video_downloads_url
video_downloads_url=i.get('item').get('video_playurl')
#調用下載函數進行下載
video_downloads(video_downloads_url)

exrta_video_url()

  當然對於用戶代理,我們還可以使用隨機生成的方式進行生成。代理部分代碼如下(其他代碼部分不變):

#請求庫
import requests
#用戶代理庫‘
from fake_useragent import UserAgent

ua=UserAgent()

#請求頭部信息(用戶代理)
headers={
	'User-Agent':ua.random
}

  【保存路徑說明】

../表示當前路徑的上層路徑。

~表示家路徑

/根路徑

./當前同路徑,可以不用寫。                                                       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM