千家信息网

Python怎么实现视频下载与合成

发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,本文小编为大家详细介绍"Python怎么实现视频下载与合成",内容详细,步骤清晰,细节处理妥当,希望这篇"Python怎么实现视频下载与合成"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2025年02月19日Python怎么实现视频下载与合成

本文小编为大家详细介绍"Python怎么实现视频下载与合成",内容详细,步骤清晰,细节处理妥当,希望这篇"Python怎么实现视频下载与合成"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    模块使用

    requests >>> pip install requests (数据请求 第三方模块)

    re # 正则表达式 去匹配提取数据

    json

    开发环境

    Python 3.8 解释器

    Pycharm 2021.2 版本 建议

    win + R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内镜像源

    案例实现

    1.明确需求

    采集内容, 先分析一个视频是从哪里获取

    通过开发者工具进行抓包分析, 分析视频数据可以从哪里获取内容 格式 m3u8视频内容

    当我们网站视频格式 是m3u8的时候, 有一个专门存放所有ts视频片段的文件

    2.代码实现步骤

    • 发送请求

    • 获取数据

    • 解析数据

    • 保存数据

    1. 发送请求, 对于视频播放页面url地址发送请求

    2. 获取数据, 获取服务器返回response响应数据

    3. 解析数据, 提取我们想要的数据内容 视频标题 以及 m3u8 链接

    4. 发送请求, 对于 m3u8 链接 发送请求

    5. 获取数据, 获取服务器返回response响应数据

    6. 解析数据, 提取所有ts文件url [视频片段]

    7. 保存数据, 把所有视频保存下来, 然后合成为一个整体视频内容

    实现代码

    import requests  # 数据请求模块 pip install requests  在cmd里面 输入命令import re  # 导入正则表达式模块 内置模块import jsonimport pprint  # 格式化输出模块for page in range(1, 17):    print(f'--------------------正在采集第{page}页的数据内容--------------------')    list_url = 'https://www.acfun.cn/u/45321802'    # 批量 ctrl + R 选中目标    data = {        'quickViewId': 'ac-space-video-list',        'reqID': page + 1,        'ajaxpipe': '1',        'type': 'video',        'order': 'newest',        'page': page,        'pageSize': '20',        't': '1649944573765',    }    headers = {        # 'cookies': '你的cookie',        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'    }    # get请求 有一个params参数    # post请求 data 参数    response = requests.get(url=list_url, params=data, headers=headers)    # print(response.text)    id_list = re.findall('a href=.*?ac(.*?)"', response.text)    for index in id_list:        video_id = index.replace('\\', '')        """        1. 发送请求, 对于视频播放页面url地址发送请求            用python代码去模拟浏览器 对于 url地址发送请求        video         """        url = f'https://www.acfun.cn/v/ac{video_id}'  # 确定请求url地址        # 请求头 用伪装python代码, 为了被服务器识别出来 是爬虫程序 一种简单反反爬手段 当你加ua 得到数据的时候, 可能要cookie        # 需要登陆才能获得数据的, 需要加cookie 用户信息, 常用于检测是否登陆账号        headers = {            # 'cookies': '你的cookie',            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'        }        # 通过requests模块里面get请求方式, 对于url地址发送请求, 并且携带上headers请求头伪装, 最后用response自定义变量接收返回数据        response = requests.get(url=url, headers=headers)        # 2. 获取数据        # print(response.text)        # 3. 解析数据 通过re模块里面findall的方法 在response.text里面去找寻 标题数据 re.S 匹配换行        # 正则表达式提取出来的数据返回都是列表数据类型  实现过程不重要, 方式方法很多, 你喜欢用哪个都可以 只要可以取到数据都OK        title = re.findall('(.*?) - AcFun弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ', response.text)[0]        video_info = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0]        # print(video_info) # 字符串转成字典 怎么转  最稳妥查看数据类型 直接用 type() 这个函数去查看        json_data = json.loads(video_info)        # pprint.pprint(json_data)        # 字典取值 根据冒号左边的内容(键) 提取冒号右边的内容(值)        m3u8_url = \        json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]        # print(title)        # print(m3u8_url)        # 通过requests模块里面get请求方式, 对于m3u8_url地址发送请求, 并且携带上headers请求头伪装, 获取响应体文本数据, 用m3u8_data自定义变量接收数据        m3u8_data = requests.get(url=m3u8_url, headers=headers).text        # split() 字符串分割        m3u8_data = re.sub('#E.*', '', m3u8_data).split()        # print(m3u8_data)        for ts in m3u8_data:            ts_url = 'https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/' + ts            ts_content = requests.get(url=ts_url, headers=headers).content            # ab 是什么意思 a追加保存, b 二进制数据 ab 以二进制数据追加保存            with open('video\\' + title + '.mp4', mode='ab') as f:                f.write(ts_content)        print('视频保存完成: ', title)

    读到这里,这篇"Python怎么实现视频下载与合成"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

    数据 视频 内容 模块 地址 代码 视频下载 文章 方式 服务器 格式 正则 表达式 分析 服务 输入 二进制 冒号 参数 变量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 键值数据库需要什么条件 引用不同文件夹表格数据库 数据库和信息技术有什么关系 市领导在网络技术培训班 陕西网络安全职业学院 小学校园网络安全快板 芜湖激光工控机服务器 上海机场网络安全宣传周 济南软件开发工作好找吗 软件开发android技术 网络安全风险分析研判记录 网络安全班会感悟 web服务器配置管理课设 服务器被黑客入侵如何取证报警 高性能服务器哪个厂家质量好 普陀区信息化软件开发服务优势 数据库确认保质期是否过期 虹口区常规网络技术服务业务流程 微信基础数据库 手机免费代理服务器 原神id2开头是什么服务器 网络技术应用 广东版 天涯明月刀还有几个服务器 哈密市网络安全宣传 火舞软件开发什么游戏 网络安全周专题讲座心得体会 网络技术服务费包括啥 oracle数据库复杂查询 溆浦县网络安全宣传周 面试不会数据库怎么办呢
    0