爬取B站单个视频

思路

第一步:

第二步:

第三步:

第四步:

具体代码:

import requests
headers={
        'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Mobile Safari/537.36 Edg/134.0.0.0',
     'Cookies':"buvid3=80381787-8DC6-341D-6383-2DAD0B65BE7F35778infoc; b_nut=1719229735; _uuid=EE52E93F-9A25-E1045-F668-2102C10B8F37D1037348infoc; buvid4=97AB953B-04D3-0D7C-3A5E-9B6F173E991238025-024062411-noq5OiLDsz9QRIZhiCc3Kg%3D%3D; rpdid=|(u)l|)Jlmk|0J'u~umkkm~J); buvid_fp_plain=undefined; DedeUserID=238639629; DedeUserID__ckMd5=46524913552e1129; header_theme_version=CLOSE; enable_web_push=DISABLE; hit-dyn-v2=1; fingerprint=f89a2bab30cb9a814fa72b8a72ab2f40; buvid_fp=f89a2bab30cb9a814fa72b8a72ab2f40; LIVE_BUVID=AUTO7317305698596358; PVID=1; CURRENT_QUALITY=80; is-2022-channel=1; enable_feed_channel=ENABLE; SESSDATA=c3be9ff5%2C1757344550%2C2b78e%2A31CjCIzD92JeD-fMkXHFP4MYVNFr_9RorajqpFZPNgxx3uSpGi2DfvB9GqPseHCoGt-CoSVjhvYy04MzFtc0FLNzFmRVNHZEhjb2xadDJEbEl1bmppcHcxMHdhY1FLTE1PRXBpMkt0V25ZMjNJdmlCWWJONDhrd3Fubk1mVEJBdTcxQ1gxdVF5UE1nIIEC; bili_jct=35578dbfa11598ddf34bd8b03657a5af; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDIxODQ1NDAsImlhdCI6MTc0MTkyNTI4MCwicGx0IjotMX0.iXQwPHpk6MH30RWu-aQzqth7WlH_GqQDYZg_PQ8ugiU; bili_ticket_expires=1742184480; browser_resolution=1283-690; home_feed_column=4; bp_t_offset_238639629=1044548145310072832; CURRENT_FNVAL=4048; b_lsid=4E48F898_19599C8CA57; sid=7ufhdan6",

    'referer':'https://www.bilibili.com/video/BV1NjZMY7EMK/',
    }
url='https://api.bilibili.com/x/player/wbi/playurl'

params={
'avid': '114231718449897',  #这里要改
'bvid': 'BV1NjZMY7EMK',#这里要改
'cid': '29087499465',#这里要改
'qn': '80',
'fnver': '0',
'fnval': '4048',
'fourk': '1',
'gaia_source':'',
'from_client': 'BROWSER',
'is_main_page': 'true',
'need_fragment': 'false',
'isGaiaAvoided': 'false',
# 'session': 'd385c9e795dff1828e0c043bcb916665',
'voice_balance': '1',
'web_location': '1315873',
# 'dm_img_list': '[{"x":2403,"y":1939,"z":0,"timestamp":2512,"k":64,"type":0},{"x":2367,"y":1848,"z":14,"timestamp":2634,"k":65,"type":0},{"x":2306,"y":1633,"z":1,"timestamp":2803,"k":113,"type":0},{"x":2549,"y":1862,"z":240,"timestamp":2983,"k":75,"type":0}]',
# 'dm_img_str': 'V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ',
# 'dm_cover_img_str': 'QU5HTEUgKEFNRCwgQU1EIFJhZGVvbihUTSkgR3JhcGhpY3MgKDB4MDAwMDE2ODEpIERpcmVjdDNEMTEgdnNfNV8wIHBzXzVfMCwgRDNEMTEpR29vZ2xlIEluYy4gKEFNRC',
# 'dm_img_inter': '{"ds":[{"t":0,"c":"","p":[486,40,692],"s":[263,3014,1694]}],"wh":[5683,2846,75],"of":[12,24,12]}',
# 'w_rid': '3fd6e53c11e30ddc61a224b610b66e1b',
# 'wts': '1741917402',
}
response_json1 = requests.get(url,headers=headers,params=params)
video_m4s=requests.get(url=response_json1.json()['data']['dash']['video'][0]['base_url'],headers=headers).content
# base_url=response_json1.json()['data']['dash']['video'][0]['base_url']
audio_m4s=requests.get(url=response_json1.json()['data']['dash']['audio'][0]['base_url'],headers=headers).content

with open('./overlord.mp4',mode='wb') as f:
    f.write(video_m4s)

with open('./overlord.mp3',mode='wb') as f:
    f.write(audio_m4s)
print('end')
posted @ 2025-03-20 15:03  CodeCraftsMan  阅读(110)  评论(0)    收藏  举报