作为一枚码农,下载b站的时候以前虽然知道用you-get,但是还是想批量进行下载
you-get虽然可以在命令行直接下载,但是这样很费事,还是想写在一个python文件这样方便
我注意到you-get是可以开多个窗口同时下载的,这样可以提高下载速度的,不信可以试一下。但是这样得开很多个窗口,这样也是很麻烦的一件事。
然后就想到了,干脆直接在python文件里做成多进程算了。
直接看代码
import sys
from you_get import common as you_get
from multiprocessing import Pool
#路径自己定义
directory = r'D:\C# WPF 基础+高级教程'
base_url='https://www.bilibili.com/video/av78982708?p='
urls=[]
#获取所有需要下载的url
def get_urls(p_num):
for i in range(1,p_num) :
url=base_url+str(i)
urls.append(url)
return urls
def download(urls):
sys.argv = ['you-get','-o',directory,'--no-caption',urls]
you_get.main()
if __name__ == '__main__':
urls= get_urls(103)
pool = Pool(10)
pool.map(download, urls)
pool.close()
pool.join()