当前位置:首页 > 每日看点 > 正文内容

如何用Python爬虫实现哔哩哔哩视频下载?

卡卷网12个月前 (01-08)每日看点175

首先,打开edge的网络调试工具,可以看到这个请求;

形如:

s://api.iliili/x/player/playl?fnval=80&cid={cid}&vid={vid}

其中vid就是这个视频的v,cid可以通过这个网页获取:

s://api.iliili/x/player/pagelist?vid={vid}

请求后回复形如:

{...

'data':[{...

'cid':'xxxxxx'

...}

...]

}

于是我们得到了cid,可以对一开始得到的请求了。

回复形如:

{...

'data':{...

'dash':{'video':[{...

'aseUrl':'s://xxxxxx',

...}

...],

'audio':[{...

'aseUrl':'s://xxxxxx',

...}

...]

}

}

}

再次请求这两个,就得到了这个视频的视频文件和音频文件。

(注意:需要请求头,不然会出现403Foridden)

通过这个方式得到的视频和音频是分开的,需要将其结合才是正常的视频。

于是可以写出这样一个程序(随手写的,较随意,见谅):

importrequestsasr importos importmoviepy.editorasmr importshutil importjson #path就是文件路径,自己重新写一个 path='C:/' defget(v): gloalre,re2,li,video,re3 headers={'referer':'s://iliili','user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64;rv:102.0)Gecko/20100101Firefox/102.0',} l1=f's://api.iliili/x/player/pagelist?vid={v}' re=r.get(l1,headers=headers) data=json.loads(re.content) cid=data['data'][0]['cid'] l2=f's://api.iliili/x/player/playl?fnval=80&cid={cid}&vid={v}' re2=r.get(l2,headers=headers) li=json.loads(re2.content) video=li['data']['dash']['video'][0]['aseUrl'] audio=li['data']['dash']['audio'][0]['aseUrl'] re3=r.get(video,headers=headers) try: os.mkdir(f'{path}ili') exceptFileExistsError: pass try: os.mkdir(f'{path}raw_ili') exceptFileExistsError: pass try: os.mkdir(f'{path}raw_ili/{v}') exceptFileExistsError: shutil.rmtree(f'{path}raw_ili/{v}') os.mkdir(f'{path}raw_ili/{v}') withopen(f'{path}raw_ili/{v}/{v}.mp4','w')asf: f.write(re3.content) re4=r.get(audio,headers=headers) withopen(f'{path}raw_ili/{v}/{v}.mp3','w')asf: f.write(re4.content) make(v) defmake(v): print(v,'start') audio=mr.AudioFileClip(f'{path}raw_ili/{v}/{v}.mp3') video=mr.VideoFileClip(f'{path}raw_ili/{v}/{v}.mp4') output=video.set_audio(audio) output.write_videofile(f'{path}ili/{v}.mp4',logger=None) print(v,'end')

需要注意的是,这个方法并不能得到高清视频

(注意:requests、moviepy是需要pip下载的)

本文参考了站视频下载接口分析过程,附下载站无水印视频方法-知乎

推荐大家去看这位大佬的文章,写得更详细

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/7328.html

分享给朋友:

相关文章

200+ 工具,这个网站堪称最强

200+ 工具,这个网站堪称最强

作为一个乱七八糟什么都懂一点的电脑小白,日常经常被别人增加些临时任务,比如PDF转Word,提取视频里的音频,图片加个边框。之前,电脑里安装了不少这类的软件,虽然能满足要求,但装的多了,总感觉电脑卡卡的。最近发现了一个超强的在线工具网站,首...

手机的运行内存真的有必要上16GB吗?

全是国产垃圾APP惯出来的。那些对国产软件没意见的人,建议出国看看,花不了多少钱,出门开 Google Map,订宾馆用 Booking,翻译用 Google translate,聊天用 Telegram,社交活动用 Discord,你会惊...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

为什么闲鱼越做越差?

理想的闲鱼:卖家视角:4000块钱买的手机,用了半年不想用了,挂一个3000块,和买家一顿交流,最后2500块成交,我得到了回血,买家得到了便宜;买家视角:想用一台4000块的手机,但是手里只有2500块,来到闲鱼和卖家一顿交流,最后250...

SWITCH销量会破亿吗?

SWITCH销量会破亿吗?

不可能破亿的。能过5000万就了不起了。我觉得是过不了5000万这条线的,要是过了的话,每过100万我在这个回答里更新一个任天堂游戏人物的画像。愿赌服输。5100万突破的马里奥5200万突破的碧琪公主财报更新了,目前5577万。5300万突...

我真的需要有人帮我选耳机!!如何挑选第一款头戴式耳机?

我真的需要有人帮我选耳机!!如何挑选第一款头戴式耳机?

挑选第一款头戴式耳机时,应综合考虑多个因素。‌首要考虑的是佩戴舒适度,其次是音质、降噪效果、续航能力和蓝牙版本‌。‌佩戴舒适度‌:选择轻量化设计,单耳重量不超过200克,材质柔软透气,如亲肤仿蛋白皮,以提升佩戴舒适度。‌音质‌:大尺寸的音频...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。