Bilibili视频爬取
参考博客:ucaslilong的博客 码农家园
一 、
最近在研究网页视频的爬取,各种切片云云头都大了。有现成的工具,如you-get, 命令行调用很方便,功能也很强大,不过过于强大笼统的功能(给个url就直接扒拉下来),订制度又太低了,加上you-get在买了飞机票时和B站贴贴时会很卡,就想到网上找些别的视频爬取方案。
二、
主体代码目前可见,非作者本人 码农家园
实现了对b站个人投稿类的视频爬取,有版权的还是老老实实用you-get绑cookie。
跑别人代码出现的几个小问题:
要装ffmpeg
试着在win上用pip装,然后本地电脑python包环境云云极其混乱,失败了
下载时初始音频和画面是分开的,需要分别下载,然后通过调用本地的ffmpeg,把两个文件合成一个.mp4。
尝试在程序中通过添加以下代码删除两个临时文件时,合成的.mp4也没了(具体跑一遍链接的代码就知道了)
os.remove("%s_video.mp4" % data[2])
os.remove("%s_audio.mp4" % data[2])
后来查了资料,知道了
command = 'ffmpeg -i "%s_video.mp4" -i "%s_audio.mp4" -c copy "%s.mp4" -y -loglevel quiet' % (
video_name, video_name, video_name)
dd = subprocess.Popen(command)
subprocess是生成的新的进程,所以在python里直接os.remove时,cmd的命令还没执行完 不知道为什么不在控制台报错
所以只要在子进程结束后,再删除两个临时文件就不会出错,如下:
dd = subprocess.Popen(command)
if(dd.wait() == 1):
print("视频合成结束:%s" % video_name)
还开了几个线程来加速爬取
可惜python线程锁进程锁云云我都不会。
结果如下
爬取的视频默认在当前的文件夹里
总结
学爬虫 主要是为了存小姐姐
虽然自己静不下心看,那些什么分析视频怎么怎么切片的高端操作。
读别人的代码还是能学到不少东西的,最近自己倒是没心思实现了。