Python爬取B站视频+抓包过程分享
本帖最后由 陶远航 于 2023-8-19 08:18 编辑第一步:有言在先
你需要先准备:
1.python(必要)
2.you-get库(非必要,但是会导致你无法使用第一个方法)
3.requests库(必要)
4.lxml(非必要,但是会导致你无法使用第二个方法)
5.ffmpeg.exe(非必要,用来合并音视频,下载方法:搜索ffmpeg,从官网下载压缩包,解压,把这三个exe放在程序的同目录下)
如果这些东西没有准备好,程序发生异常,请先安装以上所说的所有库
第二步:抓包+分析
好的,相信大家都准备好了,我来一步一步教大家怎么抓包(你如果只是想使用本程序的话,可以直接跳到第4步)
然后我们按下F12,打开一个视频,可以看到网络这一栏有很多请求
可以看到B站视频是m4s格式的,请求方式:GET
然后我通过关键字查找,发现这些链接是可以通过视频链接直接提取的
我用python模拟了一次,发现结果并不理想:
于是我继续分析,发现有几个options请求,是像这样的:
我试了发送好几次这样的请求,发现还是不行
于是我考虑用session。
然后......还是不行...
https://img1.imgtp.com/2023/08/14/qcd7mVQd.png
于是我参考网上的方法,增加请求头再试了几次,加上session,居然可以了!
进入写代码环节!
第三步:编写代码
因为还有一个下载B站视频的方法,就是:you-get
所以,我们需要把两个方法都写进程序里面
最终的界面是这样的:
有点丑哈,不过这个是第一版,后续会更新的。
哎呀,忘记了视频保存目录了
来,最终效果:
2.0版本UI会好一点,1.0做得急,UI凑合着用吧...
接下来,就差下载视频函数了,直接看代码吧。
第四步:代码展示以及使用方法
就讲三句:
you-get中playlist是用来下载全部分p的。
第二种下载方法不能用来下载所有分p,所以勾不勾都一样
”我已了解本程序......“这个就是一个摆设,不做出强制勾选限制
上代码:
**** Hidden Message *****
记得评分哦!
@小甲鱼 @不二如是 @sfqxx @cjjJasonchen @isdkz @歌者文明清理员 @liuhongrun2022 @Twilight6 @Mike_python小 @ba21求支持~ {:10_256:}{:10_256:} 不二如是 发表于 2023-8-14 18:04
{:10_256:}{:10_256:}{:10_256:} 不二如是 发表于 2023-8-14 18:04
做这个东西是经过甲鱼哥同意的{:10_256:}{:10_256:}
不同意我也不会做这个 币 厉害啊,爬虫! {:10_256:} 币 这个可以有啊。 你的脚本好智能,还会打广告{:10_256:}{:10_256:}{:10_256:} 爬虫! 不错不错! 奋斗中的鱼 发表于 2023-8-14 20:21
爬虫!
?你想表达什么 感谢楼主{:10_256:} 好东西,已收藏
好东西,已收藏 陶远航 发表于 2023-8-14 20:21
?你想表达什么
这不是网络爬虫吗?{:10_302:}怎么了? 70%都不中? zhangjinxuan 发表于 2023-8-14 19:12
你的脚本好智能,还会打广告
哈哈哈