bilibili_video_download.exe是一款Python编写做成的可以批量下载BiliBili视频的下载器软件,导入的库包括用于爬取和解析网页的库,还包括创建线程池的库和进行其他处理的库,大多数都是Python自带的。
软件说明
软件前言
在正常情况下(不使用其他工具或插件),Web端的bilibili似乎无法(彻底白嫖)下载视频,遂学习了如何利用Python爬虫下载b站视频(不包括会员视频),详情(手法)且看下文。
参考视频:https://www.bilibili.com/video/BV1Fy4y1D7XS
在分析b站网页源代码的过程中发现其视频和音频是分开的,下载后一个只有声音,一个只有画面,这显然不能满足我们的要求。解决方案是:利用 ffmpeg 这款强大的开源工具把下载后的音视频进行合并。故想要完美体验,先得下载安装并配置好 ffmpeg 。(到官网下载,解压后把文件夹内的bin 添加到环境变量)
Python中使用到的模块有:requests、re、json、subprocess、os
准备工作
视频的url比较显眼,容易获取。headers也好找,但还需要一重要信息。
通过浏览器(F12)查看分析目标网页,找到我们的下一目标,即视(音)频下载链接。
一番查找后,发现在head里的第四个script 标签内似乎有我们想要的东西。

可访问此链接,却出现403,即没有权限访问此站。

这又怎么回事?查看Request Headers 信息,发现没有referer这一项,于是尝试在数据包中加上referer信息看能否访问。(这里直接上bp了)

Forward后,出现文件下载页面。

下载后打开改文件,确为目标视频。

获取数据
通过requests库向目标站点发起请求,请求需包含header、referer等信息,以伪装成是浏览器发出请求。如果服务器能正常响应,会得到一个Response,便是所要获取的页面内容。
测试代码:

运行结果:

解析内容
得到的内容可能是HTML、json等格式,可以用页面解析库、正则表达式等进行解析。
title信息比较好找,就在head中。

利用正则表达式对其进行提取。
复制代码 隐藏代码 title = re.findall('<title data-vue-meta="true">(.*?)</title>',html_data)[0].replace("_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili",""
音视频下载链接在json数据中。

利用正则表达式和字典(列表)的“键”对其提取。

测试代码:

运行结果:

保存数据
通过下载链接,将音视频下载到本地并保存。
测试代码:

运行结果:


合并音视频
把分开的音频和视频进行合并。(几次测试下来,发现如果用视频标题作为文件名去执行ffmpeg命令会导致其出现错误,暂时没找到解决方法,后来试着将文件名先重命名为1.mp3、1.mp4这种简单的名字,可以完成合并,再删除之)
测试代码:


运行结果:

合并后视频正常播放,有声有色。

最终代码


效果:

打包成exe
首先我们要先安装Pyinstaller,直接在cmd使用pip命令

然后,把ffmpeg和py文件放置到同一文件夹下。
因为ffmpeg是要一起打包的,需要对代码中的相应目录做小幅修改。修改后的代码如下:


修改好后,cmd切换到我们刚刚放文件的目录,执行如下命令:


(这里-i bilibili.ico是对程序的图标进行设置,为可选项)
执行完毕会发现当前目录多了几个文件夹,打开其中名为dist的文件夹,里面生成了一个名为bilibili_video_download的exe应用程序,并且图标也是我们设置的图案。(这里要把exe文件移动到上一级目录,即ffmpeg的同级目录)

使用说明
点击运行exe应用程序,输入视频URL即可下载。
下载完毕!
























大小: 14.0M


大小: 90.4M
Adobe Application Manager10.0 官方最新版
迅雷极速版v1.0.35.366 绿色精简版
迅雷7(集成本地Vip)v7.9.44.5056 去广告精简绿色版
FLV网络视频嗅探器(FlvCapture)0.3 绿色版
foxy繁体V1.98 绿色免费版
迅雷5(Thunder)V5.9.28.1564 官方正式版
uTorrentv3.5.5.46552 官方正式版
115网盘客户端v8.2.0.45 官方安装版
盛大下载器2016v1.9.0.6 官方稳定版
步步高点读机下载工具V2.1.0 官方最新版
硕鼠20180.4.8.1 官方最新版
维棠FLV视频下载工具v3.0.1.0 官方正式版
QQ旋风2014v4.5.760.400
Internet Download Manager(IDM)V6.35.3中文精简版
快车、迅雷、QQ旋风、FS2You、RayFile、纳米盘等链接转换器V1.0 绿色离线版
MTV分享精灵20151.5.1 绿色免费版
比特精灵(BitSpirit)V3.6.0.500 免费简体中文绿色版
QQ旋风4.5(757) 绿色版