当前位置:   article > 正文

05、Python -- 爬取ts文件格式视频思路_.ts视频爬取

.ts视频爬取

思路:
1、爬取视频,但是每次只能爬取一段5秒的视频。
2、一个视频有很多秒,所以需要爬取很多片段的视频
3、把所有爬取下来的片段视频合成导出。

4、最后再简洁代码

第一步:爬取一段5秒视频

找url

首先,找到需要爬取的视频,选择如图,找到对应的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')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

简洁后代码

# 导入模块
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')

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/154600
推荐阅读
相关标签
  

闽ICP备14008679号