爬取m3u8视频

网址:https://www.bhlsm.com/cupfoxplay/609-3-1/

相关代码:

#采集网址:https://www.bhlsm.com/cupfoxplay/609-3-1/
#正常视频网站:完整视频内容
# pip install pycryptodomex
#流媒体文件:M3U8(把完整的视频内容,分割成N个视频片段,ts文件)
"""
第一次请求:获取m3u8文件链接  / 视频标题
    1.发送请求:
        - 请求网址:视频播放页面链接
    2.获取数据:
        - 服务器返回响应数据
    3.解析数据:
        - 提取么u3u8文件链接 / 视频标题
AES-128:
    1. key:密钥 enc.key https://v.gsuus.com/play/QBY0yWKa/enc.key
"""
import requests
#导入正则表达式模块
import re
#导入加密模块
from Cryptodome.Cipher import AES
#模拟浏览器
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
    }
#请求网址
for page in range(1,4):
    url = f'https://www.bhlsm.com/cupfoxplay/609-3-{page}/'
    #发送请求
    response = requests.get(url=url,headers=headers)
    # print(response)
    html_data = response.text
    #解析数据,提取视频标题 -> re.findall('匹配数据','数据源')
    # re.findall('<h1 class="movie-list-title">(斗罗大陆1 第01集)在线播放</h1>')
    title = re.findall('<h1 class="movie-list-title">(.*?)在线播放</h1>',html_data)[0]
    #提取m3u8链接
    m3u8_url = re.findall('"url":"(.*?)","url_next":',html_data)[0].replace('\/','/')

    print(title,m3u8_url)

    #获取密钥(每一集的密钥不相同)
    # key_url = 'https://v.gsuus.com/play/QBY0yWKa/enc.key'
    key_url = f'https://v.gsuus.com/play/{m3u8_url.split("/")[-2]}/enc.key'
    key = requests.get(url=key_url,headers=headers).content
    #解码器
    ci = AES.new(key,AES.MODE_CBC)
    # print(html_data)

    # print(title)
    """
    第二次请求:获取所有ts文件链接
    1.发送请求:
        - 请求网址:m3u8文件链接
    2.获取数据:
        - 服务器返回响应数据
    3.解析数据:
        - 提取  ts文件链接(230个视频片段)
    """
    #发送请求 + 获取数据
    m3u8_data = requests.get(url=m3u8_url,headers=headers).text
    #解析数据,提取ts链接
    ts_list = re.findall(',\n(.*?)\n#',m3u8_data)


    """
    ,
    https://gs.gszyi.com:999/hls/46/20230223/1034032/plist-00001.ts
    #
    """
    # print(m3u8_data)
    #for循环遍历,提取列表里面元素

    # print(ts_list)

    for ts in ts_list:
        """
        第三次请求:获取视频内容
            1.发送请求:
                - 请求网址:ts文件链接
            2.获取数据:
                - 获取视频内容
            3.保存数据:
                - 把所有视频派那段保存成一个完整的视频内容
        
        """
        # print(ts)
        #发送请求ts链接+ 获取视频数据
        ts_content = requests.get(url=ts,headers=headers).content
        #进行解码
        content = ci.decrypt(ts_content)
        with open('video\\' + title + '.mp4',mode='ab') as f:
            f.write(content)
        print(ts)
        #break

爬取过程:

查找url:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/405492.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# OpenVINO 百度PaddleSeg实时人像抠图PP-MattingV2

目录 效果 项目 代码 下载 C# OpenVINO 百度PaddleSeg实时人像抠图PP-MattingV2 效果 项目 代码 using OpenCvSharp; using Sdcb.OpenVINO; using System; using System.Diagnostics; using System.Drawing; using System.Security.Cryptography; using System.Text; us…

【电子书】云计算_大数据

资料 wx&#xff1a;1945423050&#xff0c;备注来源和目的 个人整理了一些互联网电子书 云计算_大数据 34招精通商业智能数据分析&#xff1a;Power BI和Tableau进阶实战.epubCloudera Hadoop大数据平台实战指南.epubDocker实战.epubDocker技术入门与实战 第2版.epubDocker技…

spark基础

文章目录 spark框架概述什么是spark起源spark VS hadoop(mapreduce)spark特点spark框架模块spark运行模式spark架构角色yarn角色saprk角色 小结&#xff1a;解决问题模块特点运行模式运行角色 spark环境搭建-local实验服务器环境基本原理本质角色分布搭建安装anaconda安装spark…

Redis 事务机制之ACID属性

事务属性 事务是对数据库进行读写的一系列操作。在事务执行时提供ACID属性保证&#xff1a; 包括原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09;…

改进yolov5实现目标检测与语意分割项目

简介 基于ultralytics/yolov5多任务模型。同时实现yolo目标检测与语意分割以增加少量计算和显存为代价&#xff0c;同时完成目标检测和语义分割(1024512输入约增加350MB&#xff0c;同尺寸增加一个bisenet需要约1.3GB&#xff0c;两个单任务模型独立输入还有额外的延时)。模型…

【elementUi-table表格】 滚动条 新增监听事件; 滚动条滑动到指定位置;

1、给滚动条增加监听 this.dom this.$refs.tableRef.bodyWrapperthis.dom.scrollTop 0let _that thisthis.dom.addEventListener(scroll, () > {//获取元素的滚动距离let scrollTop _that.dom.scrollTop//获取元素可视区域的高度let clientHeight this.dom.clientHeigh…

Sass预处理器教程

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈 一、sass是什么 Sass官方文档 www.sasscss.com/guide Sass中文网 www.sass.hk sass是一种css预处理语言&#xff0c;由Ruby语言开发&#x…

【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)

文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础…

4.8 Verilog过程连续赋值

关键词&#xff1a;解除分配&#xff0c;强制&#xff0c;释放 过程连续赋值是过程赋值的一种。赋值语句能够替换其他所有wire 或 reg 的赋值&#xff0c;改写wire 或 reg 类型变量的当前值。 与过程赋值不同的是&#xff0c;过程连续赋值表达式能被连续的驱动到wire 或 reg …

苹果发布iPhone 16:革命性创新重新定义智能手机体验

&#xff08;苹果总部&#xff0c;加利福尼亚州&#xff0c;2024年2月23日&#xff09;——今天&#xff0c;全球领先的科技公司苹果公司再次震撼世界&#xff0c;宣布推出iPhone 16&#xff0c;这款革命性的智能手机重新定义了人们对于手机的期望和体验。 iPhone 16的发布代表…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…

DM数据库学习之路(十八)DMHS数据实时同步软件部署及迁移测试

​​​​​ DMDRS介绍 产品介绍 达梦数据实时同步软件&#xff08;以下简称 DMDRS&#xff09;是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术&#xff0c;不依赖主机上源数据库的触发器或者规则&#xff0c;对主…

【SpringCloudAlibaba系列--nacos配置中心】

Nacos做注册中心以及使用docker部署nacos集群的博客在这&#xff1a; 容器化部署Nacos&#xff1a;从环境准备到启动 容器化nacos部署并实现服务发现(gradle) 使用docker部署nacos分布式集群 下面介绍如何使用nacos做配置中心 首先要进行nacos-config的引入&#xff0c;引入…

【前端素材】推荐优质后台管理系统Modernize平台模板(附源码)

一、需求分析 后台管理系统是一种用于管理和控制网站、应用程序或系统后台操作的软件工具&#xff0c;通常由授权用户&#xff08;如管理员、编辑人员等&#xff09;使用。它提供了一种用户友好的方式来管理网站或应用程序的内容、用户、数据等方面的操作&#xff0c;并且通常…

kafka为什么性能这么高?

Kafka系统架构 Kafka是一个分布式流处理平台&#xff0c;具有高性能和可伸缩性的特点。它使用了一些关键的设计原则和技术&#xff0c;以实现其高性能。 上图是Kafka的架构图&#xff0c;Producer生产消息&#xff0c;以Partition的维度&#xff0c;按照一定的路由策略&#x…

康威生命游戏

康威生命游戏 康威生命游戏(Conway’s Game of Life)是康威发明的细胞自动机。 生命游戏有几个简单的规则&#xff1a; 细胞有两种状态&#xff0c;存活或死亡&#xff0c;每个细胞以自身为中心与周围的八格细胞互动。 对于存活的细胞&#xff1a; 当周围的细胞过少(<2)或…

【vue】如何打开别人编译后的vue项目

文件结构如下&#xff0c;编译后的文件放在dist中。 dist的文件结构大约如下&#xff0c;文件名称随项目 1.新建app.js文件 const express require(express);const app express();const port 8080;app.use(express.static(dist));app.listen(port, () > console.log); …

密评技术要求实施详解:每一步都关键

密评简介 密评定义&#xff1a;全称商用密码应用安全性评估, 是对采用商用密码技术、产品和服务集成建设的网络和信息系统密码应用的合规性、正确性、有效性进行评估的活动。 评测依据&#xff1a;GB/T 39786-2021《信息安全技术 信息系统密码应用基本要求》。 密评对象&…

智能高压森林应急消防泵|保障森林安全|深圳恒峰

随着科技的不断发展&#xff0c;我们的生活质量得到了显著提升。在森林保护领域&#xff0c;一项创新技术正在发挥着关键作用——智能高压森林应急消防泵。这种设备不仅提高了灭火效率&#xff0c;更为森林资源的安全保驾护航。 在过去&#xff0c;面对森林火灾&#xff0c;消防…

鸿蒙DevEco Service开发准备与使用

DevEco低代码是一个基于Serverless和ArkUI的端云一体化低代码开发平台&#xff0c;可通过拖拽式开发&#xff0c;可视化配置构建元服务。打通HarmonyOS云侧与端侧能力&#xff0c;轻松实现HMS Core和AGC Serverless能力的调用。通过与元服务生态、HMS Core、AGC Serverless平台…