• 05、Python -- 爬取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
  • 相关阅读:
    合宙4G模块Air724UG调试过程(短信发送、上传数据到华为云IOT)
    【微机接口】中断系统:PC系列机中的中断系统
    [附源码]java毕业设计哈金院食堂美食评价系统
    Linux:丢包检查工具,dropwatch
    Mybatis的动态sql
    比特位的计算
    学习周刊-总第60期-2022年第25周
    win7的虚拟机版优化
    qt 通用ui
    Spring支持人工智能应用框架-SpringAi
  • 原文地址:https://blog.csdn.net/weixin_44411039/article/details/134021567