拿着电脑,最怕的就是没有网络了,想学习什么都不方便,就只能拿它来防身了。当哔哩哔哩作为一个免费超级学习网站,上面的教程简直是太棒了,何不把上面的视频下载下来做为教程了,这样害怕没有学习资源吗?找个网好的地方,一起来为没有网络做准备吧,以后不需要网也是可以敲代码的~
明确目标: 哔哩哔哩的视频
工具: python + you-get
python就不用我说了,如果不认识you-get这个视频下载神器,请移步官网: https://pypi.org/project/you-get/0.3.25/
you-get基础
1、安装you-get
- win+ R,输入cmd进入控制台,使用
pip install you-get
安装you-get。
2、查看视频信息
- 在控制台输入
you-get -i 视频链接
,如:
you-get -i https://www.bilibili.com/video/av51238267?p=1
- 现在我选择第一个分辨率的格式进行下载
you-get --format=dash-flv https://www.bilibili.com/video/av51238267?p=1
- 这样就下载好了,文件默认保存在当前路径,现在的路径为计算机用户名路径下。
- 其中还包含了该视频的弹幕也被下载下来了。
3、更改下载路径
- 在参数中带上下载的路劲,它就自动下载到相应的地方了
- 路径参数为:
- o 路径
you-get -o F://bilibili --format=dash-flv https://www.bilibili.com/video/av51238267?p=1
python+you-get实现批量化下载
- 如果要下载的视频数量很大,一个一个的下载就不是我们码农该完成的任务,我们重来不去做重复的事,这些事呢就交给计算机去完成吧!
1、单线程下载
- 推荐使用它
import you_get
import os
import time
stime = time.time()
urlList = []
def getMp4(path,urlList):
cmd_list = []
for url in urlList:
cmds = 'you-get -o %s --format=dash-flv %s'%(path,url)
cmd_list.append(cmds)
for count,each in enumerate(cmd_list):
startTime = time.time()
print("当前正在下载第%s个视频,一共有%s个视频需要下载..."%(count+1,len(cmd_list)))
os.system(each)
endtime = time.time()
useTime = (endtime-startTime)
print ("您所下载的视频一共使用%s秒"%useTime)
def make_page():
for p in range(100,118,1):
url = "https://www.bilibili.com/video/av51238267?p=%s"%p
urlList.append(url)
if __name__ == '__main__':
make_page()
path = "F:\\数据分析\\OpenCV+TensorFlow入门人工智能图像处理"
getMp4(path,urlList)
etime = time.time()
utime = (etime-stime)/60
print ("您所下载的全部视频一共使用%s分钟"%utime)
2、多线程下载
- 并不建议去使用多线程下载,它的速度主要还是与网速有关,不关线程的事
import you_get
import os
import time
import threading
stime = time.time()
urlList = []
cmd_list = []
def getMp4(path,urlList):
for url in urlList:
cmds = 'you-get -o %s --format=dash-flv %s'%(path,url)
cmd_list.append(cmds)
def download(count,each):
startTime = time.time()
print("当前正在下载第%s个视频,一共有%s个视频需要下载..."%(count+1,len(cmd_list)))
print (each)
os.system(each)
endtime = time.time()
useTime = (endtime-startTime)
print ("您所下载的视频一共使用%s秒"%useTime)
def make_page():
for p in range(1,9,1):
url = "https://www.bilibili.com/video/av84328746?p=%s"%p
urlList.append(url)
def main():
for count,each in enumerate(cmd_list):
thr1 = threading.Thread(target=download, args=(count,each))
thr1.start()
thr1.join()
# thr2 = threading.Thread(target=download, args=(count,each))
# thr2.start()
# thr2.join()
if __name__ == '__main__':
make_page()
path = "F:\数据分析\深度学习在图像处理中的应用"
getMp4(path,urlList)
main()
etime = time.time()
utime = (etime-stime)
print ("您所下载的全部视频一共使用%s分钟"%utime)