赞
踩
思路:
1、爬取视频,但是每次只能爬取一段5秒的视频。
2、一个视频有很多秒,所以需要爬取很多片段的视频
3、把所有爬取下来的片段视频合成导出。
4、最后再简洁代码
首先,找到需要爬取的视频,选择如图,找到对应的URL。
然后最简单的四行爬取代码
爬取的结果如图,里面视频只有5秒
把该视频所有片段都下载下来了
命令:pip install moviepy -i https://mirrors.aliyun.com/pypi/simple/
完整合成视频并下载下来
如图:每个视频只由4秒
这里我把原本存放视频的文件夹名由《视频》改成《视频片段》
所以这里的【视频】,后面写代码的时候也应该改成【视频片段】
# 导入模块 import requests number = 0 # 循环下载视频片段 while True: format_num = '{:05d}'.format(number) # f'' --> 用于在字符串中添加执行表达式 url = f'https://xxxxxxxxxx.{format_num}.ts?pkexxxxxxxxxxxxx' res = requests.get(url) # 遇到404,就跳出循环 if res.status_code == 404: break open(f'视频片段/{format_num}.ts', 'wb').write(res.content) print(f'已经下载了 {format_num} 个.ts文件') number += 1 print(f'一共下载了 {number} 个视频 , 准备合成,请稍等几分钟') # 合成 #从moviepy这个模块的子模块editor里面导入所有的功能 from moviepy.editor import * # 列表 把这些视频加载到程序中来,保存在一个列表中 clip_list = [] for i in range(number): format_num = '{:05d}'.format(i) clip = VideoFileClip(f'视频片段/{format_num}.ts') clip_list.append(clip) # 最终视频合成 lastVideo = concatenate_videoclips(clip_list) # 视频下载写出地址 lastVideo.write_videofile('完整视频/最终视频.mp4')
# 导入模块 import requests #从moviepy这个模块的子模块editor里面导入所有的功能 from moviepy.editor import * number = 0 # 列表, 用于把所有片段视频加载到程序中来,保存在一个列表中 clip_list = [] # 循环下载视频片段 while True: format_num = '{:05d}'.format(number) # f'' --> 用于在字符串中添加执行表达式 url = f'https://xxxxxxxhevc_1.{format_num}.ts?pkexxxxxxxxxxxxxxxxxxxxxx' res = requests.get(url) # 遇到404,就跳出循环 if res.status_code == 404: break # 视频片段 就是存放一段段视频的文件夹名 open(f'视频片段/{format_num}.ts', 'wb').write(res.content) clip = VideoFileClip(f'视频片段/{format_num}.ts') clip_list.append(clip) print(f'已经下载了并且加载了 {format_num} 个.ts文件') number += 1 print(f'一共下载了 {number} 个视频 , 准备加载,请稍等几分钟') # 最终视频合成 lastVideo = concatenate_videoclips(clip_list) # 视频下载写出地址 lastVideo.write_videofile('完整视频/最终视频.mp4')
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。