游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

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

  作者:段小草
  链接:https:www。zhihu。comquestion486484268answer2911872392
  来源:知乎
  著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  人之所以区别于动物,是会使用工具。现成的工具有太多了,程序员更倾向于不重复造轮子。直接使用youget
  题主只说了使用Python,没说具体如何使用。众所周知,youget所有代码都是由Python完成的。
  除了B站,youget还支持几乎所有市面主流的视频网站。
  使用方法也非常简单。
  安装:pipinstallyouget
  使用youget视频链接
  作为命令行工具,youget也提供了丰富的可供选择,比如选择分辨率、查看视频信息等,详见Github仓库:
  https:github。comsoimortyougetgithub。comsoimortyouget分析youget源码
  如果题主不单单是为了工具,而是想自己写代码,或者是为了完成某门作业之类的。比较快捷的做法是去查看youget源码中关于B站的部分。不过可能会缺少下载的部分,因为youget的下载器是同一的,bilibili。py更偏向于视频播放地址的解析。
  详见:
  https:github。comsoimortyougetblob1c841f7e8ce60130572a8f03fb038eda99deff6asrcyougetextractorsbilibili。pygithub。comsoimortyougetblob1c841f7e8ce60130572a8f03fb038eda99deff6asrcyougetextractorsbilibili。py自己观察视频加载播放
  如果题主不想吃做好的饭,非要挑战自己,尝试重新造轮子的话。那就需要自己去找真实的播放链接了。
  一般来讲,获取网站的视频播放有几种方式:
  最简单的情况下,直接查看network,会看到一个体积巨大的请求,右键,在新链接打开,直接下载就是了。
  一些网站会把视频切割成。ts的分段文件,然后用一个。m3u8的文件,可以下载所有的。ts文件后进行拼接重新输出。(可以搜索m3u8ts拼接这些关键字,这里不展开了)
  在源码里分析,看会不会找到真实播放地址的线索,等等。
  我之前设想过一个工作流:自动监测某个账号的视频更新下载视频语音转文字摘要成笔记。因为现在长视频的内容太多了,其中确实有一些优秀视频,但看视频远比图文费时间,其中的主要内容还不能直接复制粘贴整理。不过后来由于懒一直没有执行
  发布于2023022616:37IP属地河南
  赞同192条评论分享收藏喜欢收起更多回答
  拾柒
  合格证书
  关注前言
  嗨喽,大家好呀这里是爱看美女的茜茜呐
  又到了学Python时刻
  现在好看的妹子真的太多啦
  如何一次性把这些好看的视频全保存下来捏?
  开发环境:版本:python3。8编辑器:pycharm2022。3。2专业版requestspipinstallrequestsffmpeg音视频合成软件(源码、教程、文档、软件点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀)
  实现一个案例的流程:
  一。思路分析
  案例的分析视频media。mp4。mp3。m4am3u8视频流
  。m4s:视频音频格式
  数据来源分析:找到视频内容
  network抓包
  二。代码实现(代码实现基本流程)发送请求使用代码的方式访问网站获取数据取出网页源代码解析数据提取视频链接保存数据
  代码展示
  PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取
  导入模块importrequestsimportre正则表达式模块importjsonimportpprintimportsubprocessimportos
  伪装(请求头)headers{用户信息cookie:buvid3355AA3006A6104E5A05CE891D886F69632716infoc;bnut1675085932;iwannagoback1;uuid387EA3810FBF5E92C827E2510B578C5B9A33232infoc;buvid415C69C98F6A7EC6A872FE69C1840DD6D337240230130211pW1w45e5fZS9RtebDiGZw3D3D;nostalgiaconf1;CURRENTFNVAL4048;rpdid(kmJYk))lY0JuYl)lmY;SESSDATA17eb9f1a2C16907828782C6a25c2A22;bilijct4af9076b42f76603dfe4cf018ad2000f;DedeUserID422789639;DedeUserIDckMd5fc4901c78719b545;CURRENTQUALITY80;but5;blsid51ED8F1051861C3EEC10;themestylelight;is2022channel1;sid66dafqju;fingerprint97ca5a8b555e63aca787c9cd27273c7e;buvidfpplainundefined;buvidfp8cc52ae38b592ff26dc2b393eebd890b;PVID2;innersign1;bpvideooffset422789639758803412994228200,防盗链referer:https:www。。com,浏览器基本信息useragent:Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome109。0。0。0Safari537。36}
  发送请求urlhttps:www。。comvideoBV1qv4y1k7UE?vdsource8f216a44bce0dbe14e3447c34c2ab3e2responserequests。get(url,headersheaders)
  获取数据htmldataresponse。text
  解析数据jsonstrre。findall(playinfo(。?)script,htmldata)〔0〕h1。?(。?)h1titlere。findall(h1。?(。?)h1,htmldata)〔0〕Python基础字典jsondatajson。loads(jsonstr)pprint。pprint(jsondata)audiourljsondata〔data〕〔dash〕〔audio〕〔0〕〔baseUrl〕print(audiourl)videourljsondata〔data〕〔dash〕〔video〕〔0〕〔baseUrl〕print(videourl)
  保存数据audiodatarequests。get(audiourl,headersheaders)。contentwithopen(f{title}。mp3,modewb)asf:f。write(audiodata)videodatarequests。get(videourl,headersheaders)。contentwithopen(f{title}。mp4,modewb)asf:f。write(videodata)ffmpegfffmpegi{title}。mp4i{title}。mp3acodeccopyvcodeccopy{titleout。mp4}subprocess。run(ffmpeg)os。remove(f{title}。mp4)os。remove(f{title}。mp3)
  尾语
  感谢你观看我的文章呐本次航班到这里就结束啦
  希望本篇文章有对你带来帮助,有学习到一点知识
  躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。
  发布于2023021022:56
  赞同添加评论分享收藏喜欢收起
  苛岚异梦
  关注
  5人赞同了该回答一:由于哔哩哔哩的视频文件和音频文件是分离的,所有这里分别下载后在使用ffmepg进行合成
  ffmpeg官网下载https:ffmpeg。org(下载后需要配置环境变量)需要重启!链接:https:pan。baidu。coms1aDSlIQ1kPOOUsVOAmcFfHw提取码:gvw4
  gitee地址https:gitee。comddpoibili
  博客地址https:www。ddblog。xyzarticles53欢迎大佬前来指点importtimeimportrequestsimportreimportosimportsubprocessimportsys,iosys。stdoutio。TextIOWrapper(sys。stdout。buffer,encodinggb18030)headers{referer:https:www。bilibili。comvideoBV1J3411h7pm?spmidfrom333。5。0。0,useragent:Mozilla5。0(WindowsNT10。0;Win64;x64)AppleWebKit537。36(KHTML,likeGecko)Chrome97。0。4692。99Safari537。36Edg97。0。1072。69}获取视频bviddefgetbvid(mid,path):这里ps30,是一页的视频数量,pn代表页数,可以自己加一个循环urlhttps:api。bilibili。comxspacearcsearch?mid{}ps30tid0pn1keywordorderpubdatejsonpjsonp。format(mid)responserequests。get(urlurl,headersheaders)。json()mmresponse〔data〕〔list〕〔vlist〕foriinmm:title(i〔title〕)bvid(i〔bvid〕)print(title)print(bvid)getcid(bvid,title,path)获取ciddefgetcid(bvid,title,path):urlhttps:api。bilibili。comxplayerpagelist?bvid{}jsonpjsonp。format(bvid)responserequests。get(urlurl,headersheaders)。json()nnresponse〔data〕foriinnn:cid(i〔cid〕)print(cid)getvideo(bvid,cid,title,path)获取视频,音频的urldefgetvideo(bvid,cid,title,path):urlhttps:api。bilibili。comxplayerplayurl?cid{}bvid{}qn120typeotypejsonfourk1fnver0fnval4048session521a3c69be48043423dab7dfacc0dfde。format(cid,bvid)responserequests。get(urlurl,headersheaders)。json()videourlresponse〔data〕〔dash〕〔video〕〔0〕〔baseUrl〕audiourlresponse〔data〕〔dash〕〔audio〕〔0〕〔baseUrl〕print(audiourl)print(videourl)save(title,videourl,audiourl,path)保存视频,音频文件,(下载时文件名取第一个字符,防止含有特殊符号而报错)defsave(title,videourl,audiourl,path):try:videorequests。get(urlvideourl,headersheaders)withopen(pathtitle〔:1〕。mp4,ab)asf:f。write(video。content)print({}下载完成。。。。。format(title。mp4))audiorequests。get(urlaudiourl,headersheaders)withopen(pathtitle〔:1〕。mp3,ab)asf:f。write(audio。content)print({}下载完成。。。。。format(title。mp3))except:passvideoadd(title,path)由于有些up主视频标题包含特殊字符,例如?等。所以需要将这些字符过滤出去将下载的视频,音频进行合成defvideoadd(title,path):intab?。:forsinintab:ifsintitle:将特殊字符转化为空格print(s)titletitle。replace(s,)如果程序异常,选择忽略try:print(title)print(开始合成)os。chdir(path)cmdfffmpegi{title〔:1〕}。mp4i{title〔:1〕}。mp3c:vcopyc:aaacstrictexperimental{title〔:1〕}1。mp4print(cmd)subprocess。call(cmd,shellTrue)选择是否删除原mp3、mp4文件os。remove(title〔:1〕。mp4)os。remove(title〔:1〕。mp3)os。rename(title〔:1〕1。mp4,title。mp4)print(合成结束)except:pass判断输入的是mid还是视频链接defmain(mid,path):ifmid:print(错误,请重新输入)mid输入不能为空returnFalseifre。match(r〔azAZ〕,mid):用正则来判断输入的mid类型bvid(mid。split(?)〔0〕)。split()〔4〕取出视频链接中的bvidprint(bvid)titleinput(请输入视频名称:)手动指定视频名称getcid(bvid,title,path)else:getbvid(mid,path)ifnamemain:midinput(请输入up主的mid或视频链接:)print(路径一定要加,默认为当前目录)filepathinput(请输入保存文件路径:)输入文件路径iffilepath:path。else:pathfilepathmain(mid,path)

原神官宣6位须弥角色实机,妮露没有加布料!草神挺Q萌派蒙:听说大家都喜欢腹泻式爆料?官方下场安排冻梨:这波一下子放出5位角色,有点儿意思。就在刚刚,原神官方终于放出了须弥03前瞻短片,除去对部分魔物的介绍外,出乎意料……山东队引进廖力生的负面作用终于在一场输球中爆发2022年8月31日,山东泰山队输给了上海申花,输了一场不该输的球,基本上宣布退出争冠行列,在这一场球中,打后腰的廖力生表现特别差,在场上基本上是后场倒球,传安全球,可以说是这……秋意起,又到衬衫炫技的时候了衬衫可以说是女人衣柜里的必备单品NO。1,没有它HOLD不住的季节,也没有它搭配不了的单品。尤其是这秋意渐起的时节,明媚却不闷热,正是衬衫炫技的好时候。衬衫款式何其多,但……苍兰诀神剧或者烂尾?《苍兰诀》燃爆了整个暑假档,观众本来对他没什么期待觉得又是一部烂片,演员阵容不大,怕小说惨遭影视化的毒手。没想到王境泽定律来的这么快,我直呼真香。剧情与那些俗套的仙侠剧不一样,……英超第四轮焦点战圣徒主场奏凯?红魔继续反弹?北京时间8月27日19:30分,英超第四轮的焦点战役圣徒南安普顿主场迎战红魔曼联的比赛将率先进行。南安普顿前三轮1胜1平1负,首轮惨败热刺,之后主场逼平利兹联,客场力擒蓝……中国小麦行业发展现状分析与投资前景预测报告(20222029小麦在我国已有5000多年的种植历史,种植面积和总产量仅次于水稻,居中国粮食作物第二位。得益于小麦育种技术和种植手段的进步,近年来虽然我国小麦播种面积总体呈下降趋势,但产量稳定……李现连续5年为杨紫庆生,乔欣多年为闺蜜送祝福,尽显深厚友谊11月6日是杨紫的生日,不少网友都是看着她的戏长大的,一眨眼的功夫,小猴紫都已经三十岁了!工作室在零点的时候分享了杨紫的生日照,并转述了她曾经说过的一句话:我希望未来的杨……又一个华为出现?国内重要数据出炉,外媒美封锁了什么?点击关注,每天精彩不断!导读:又一个华为出现?国内重要数据出炉,外媒:美封锁了什么?自从我国的华为公司在国际5G市场上展现出了领先的优势以后,就遭到了老美的打击和制裁,为……快乐家族现状杜海涛瘦了吴昕却发福,谢娜演话剧,维嘉停工久没有合体的快乐家族,其实其中两位成员杜海涛和吴昕已经在恋爱观察综艺《心动的信号》里合体了,没想到离开《快乐大本营》之后,他们的状态好像互换了一样。首先,杜海涛瘦了。……潮涌东方共襄盛会视频加载中。。。VideoPlayerisloading。captionssettings,openscaptionssettingsdialogcaptionsoff,……灵魂的自由之爱《灵魂的自由之爱》:肉体的爱,只是现实欲望的满足。精神之爱,只是虚荣对于情绪的讨好。而灵魂之爱,则是不离不弃,即使远离也在所有细微的电子里纠缠。梦境中的许多不真实,其实往……楼市出现三连降,2023年房子或迎来贬值潮?官媒7字透底今年的金九银十已经是彻底凉凉了,数据显示,10月全国楼市成交量环比大跌30,其中:一线大跌23。6,二线大跌37。5;今年的金九银十,开发商即便借助节日采用大幅降价促销的策略,……
胆结石会引起后背疼吗?胆结石会引起发烧吗?关于胆结石,其实是有很多症状的,很多人不清楚有哪些症状,下面5号网的小编为你们介绍胆结石会引起后背疼吗?胆结石会引起发烧吗?胆结石会引起后背疼吗胆结石,胆囊炎等患者可能出……奥比中光国产3D视觉传感器前三,产业爆发仍需应用场景成熟独立客观第三方研究,为您筛选优质上市公司证券代码:688322综合评级:A一、主营业务评分:751、业务分析:公司主营业务为3D视觉传感器的研发与生产,3D视……刚过期的避孕套能用吗?避孕套过期一个月还能用吗任何东西都有过期的时候,避孕太也不例外,那么问题来了,刚过期的避孕套是否可以用呢?避孕套过期一个月用了会怎么样呢?下面我们来一起介绍下吧!刚过期的避孕套能用吗避孕套……gopro9路亚第一视角首选的运动相机有粉丝问我平常拍摄的第一视角的用的是啥相机,今天分享下这款运动相机:gopro第九代一为什么选择这款相机,有众多匹配的优点日常去路亚钓鱼一般用挂脖,这样比较方便,视……每天学一点(5)喜欢谁选谁偏好设置今日学习目标:编辑器了解还记得昨日因为Cocos的默认编辑器没有设置,一直无法进行脚本代码编辑。故今日决定就决定跟着书本对Cocos里面一些基本设置来完善下。1、进……pola祛痘丸有效果吗?效果还不错pola祛痘丸很多人都听说过,却不知道究竟有没有效果,下面5号网的小编为你们介绍pola祛痘丸有效果吗?效果还不错。pola祛痘丸有效果吗本人就是个长痘体质,常年冒痘,粉……dokkan酵素成分纯天然成分dokkan酵素是很火的,很多人都好奇这个药品成分如何,下面5号网的小编为你们介绍dokkan酵素成分纯天然成分。dokkan酵素成分它的成分是真正的纯酵素粉是不限制人群……轻身消胖丸多少钱一盒?轻身消胖丸怎么样?轻身消胖丸是昆明出的一款减肥药,据说效果还是挺好的,下面5号网的小编为你们介绍轻身消胖丸多少钱一盒?轻身消胖丸怎么样?轻身消胖丸多少钱一盒轻身消胖丸益气、利湿,降脂……毛巾变硬是什么原因?毛巾变硬怎么办?我们用毛巾洗脸,用毛巾沐浴,毛巾在日常生活中使用的频率非常高,但是,毛巾使用过一段时间后就会出现变硬的情况,这是怎么一回事呢?毛巾变硬是什么原因?毛巾变硬怎么办?毛巾变硬的解决……开学啦!广东石油化工学院喜迎6647名2022级新生9月13日至14日,广东石油化工学院迎来了来自全国的6647名2022级本科新生。他们怀揣激情与梦想汇聚广东石油化工学院,在这里启航新征程,扬帆再出发。广东石油化工学院校……妈富隆能紧急避孕吗?不是所有的避孕药都是紧急避孕紧急避孕药和避孕药是有着本质区别的,很多人会把这个定义搞混,下面5号网的小编为你们介绍妈富隆能紧急避孕吗?不是所有的避孕药都是紧急避孕。妈富隆能紧急避孕吗妈富隆是事前、短……成都市区,藏着一片最后的原始森林在四川成都永安湖城市森林公园内,藏着一片上万棵松树组成的原始森林这些50多年前飞播长成的树木,在城市化高速推进中,还能幸存下来,不少市民称它为市区最后的原始森林管理……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网