当前位置:首页 > 每日看点

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

卡卷网1年前 (2025-01-08)每日看点260

首先,打开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

分享给朋友:

相关文章

学了两个月网络安全,一直未入门怎么办,知乎大佬们给些建议吧?

学了两个月网络安全,一直未入门怎么办,知乎大佬们给些建议吧?

你才学两个月,就想入门,笑不活了,我学了8年了,还被人说是个菜鸟。 我学了这么多的渗透,依然挖不到自己的漏洞。 ailx10:学习CSRF漏洞 ailx10:学习PHP XXE漏洞 ailx10:学习CORS漏洞 ailx10:学习Cl…

Layui 不更新了么?

Layui 不更新了么?

layui2.8已经于今天正式发布了,新增优化了大量特性,这里按照layui更新日志的模块结构,详细为你一一介绍。 基础风格调整 新版调整主色调为 #16baaa,在原有的墨绿基础上赋予了清新。 更简单的构建构建代码更简单,除字体外…

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

为何 Linus 一个人就能写出这么强的系统,中国却做不出来?

我给你举个真实的例子。。 有一个人叫高伟东,在哈尔滨工作。在2012年做了一个APP。使用词根词缀背单词。名字叫: 词根词缀词典这个人编辑了2300余条词根,给10万多条单词建立了词根索引,整理了50多万条的单词记忆方法,包括新版本的诸多新…

小米14和华为mate60怎么选?

手持荣耀20,用了五年多了,使用仍然较为流畅,但是电池不太行了,于是2024年8月在家乡的小米之家购买了小米14(12+256),用了快两个月吧,说说使用体验。 外观层面,由于我使用的荣耀20放在现在妥妥地属于小屏,习惯了小屏,遂购买小米1…

只有我一个人后悔升级鸿蒙next吗?

只有我一个人后悔升级鸿蒙next吗?

我有一台mate 60 pro,第一时间升级了“纯血鸿蒙”。 虽然功能并不完善,甚至有些简陋,但是我非常~非常不后悔升级鸿蒙next系统。 因为.... 这就是一款“大型养成系游戏“,给我平淡的生活提供了源源不断的情绪价值。 我每天特别…

天涯神帖,第一神帖是什么?

天涯神帖,第一神帖是什么?

一些个人觉得比较经典的天涯神贴(更新进去了): 话说1999年那会儿,中国的互联网还是个小婴儿,BAT三巨头都还在穿开裆裤呢,天涯社区就已经悄然诞生了。 时光飞逝,到了2007年,这小小社区竟然已经吸引了超过20…

发表评论

访客

看不清,换一张

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