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

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

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

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

分享给朋友:

相关文章

有哪些正规的兼职平台?

1.阿里巴巴云客服:工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得2.蚂蚁云客服:同样是阿里巴巴旗下的兼职平台,工作优点是时间自由,可自主选择班次,不需要去公司坐班,多做多得。3.菜鸟优加云客服:工作优点是时间自由,可自主选...

手机买16+256的还是12+512的好?

手机买16+256的还是12+512的好?

到底选大内存还是大存储,一直以来是很多朋友的纠结点,大内存意味着可以应用多开不卡顿,大存储则是可以存入更多文件、应用,如果两个配置价格差距不大(如0-200元),确实有点难选。 不过从实际体验出发,大存储的手机显然更应该优先选择才是。首先,...

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格...

你捡过最大的漏是什么?

你捡过最大的漏是什么?

买了套二手房,软磨硬泡便宜了1个w 结果就是一屋子狼藉 原业主说反正你们要重新装修 就不收拾了 等完了你们一起收拾掉吧 落了很多柜子 电器是啥的 今天打开卧室柜子一看…现在是去存钱的路上有朋友知道这样存钱银行会给发大米跟油吗...

为什么扫码支付在中国流行,在发达国家被排斥?

因为这是一种落后的技术。卖菜的大爷花5毛钱就可以打印出一张二维码来接受付款。你觉着这种先进么?跟先进完全不沾边的。正是因为不先进,所以才能流行。卖菜大爷用不起一台先进的、具有NFC感应功能的、还能刷各种银行卡的收款机。这就是现实。发达国家,...

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

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

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

发表评论

访客

看不清,换一张

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