Python采集茶杯狐影视网内容下载, m3u8 AES解密

2023-12-07 04:36

本文主要是介绍Python采集茶杯狐影视网内容下载, m3u8 AES解密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • Python 3.10 解释器

  • Pycharm 编辑器

模块使用:

  • import re

  • from Cryptodome.Cipher import AES < pip install pycryptodomex >

  • import requests < pip install requests >

如何安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可


爬虫基本流程:

一. 数据来源分析
  1. 明确需求: 明确采集的网址以及数据

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

    • 数据: 视频内容 (链接)

  2. 抓包分析: 通过浏览器开发者工具进行抓包分析

    • 打开开发者工具: F12 / 右键点击检查选择 network (网络)

    • 刷新网页: 能够看到网页返回数据内容

      001.ts 类似于这样数据 (m3u8的视频格式)

    • 通过关键字去搜索找到对应的数据包

      关键字: m3u8

      单个视频: https://v.gsuus.com/play/QbY0yWKa/index.m3u8 (包含了所有视频片段)

    • 继续分析这个链接可以从哪里获取

      https://www.cqjschungao.com/cupfoxplay/609-3-1/

目的: 视频内容 -> 分割N个片段(ts文件) -> 找到所有片段(m3u8文件中) -> 视频详情页 (网页源代码中)

二. 代码实现步骤: 发送请求->获取数据->解析数据->保存数据

第一次请求: 获取m3u8链接 / 视频标题

  1. 发送请求 -> 模拟浏览器对于url地址发送请求

    请求链接: 视频详情页

  2. 获取数据 -> 获取服务器返回响应数据

    视频详情页 网页源代码

  3. 解析数据 -> 提取 m3u8链接 / 视频标题

第二次请求: 获取所有ts文件链接

  1. 发送请求 -> 模拟浏览器对于url地址发送请求

    请求链接: m3u8链接

  2. 获取数据 -> 获取服务器返回响应数据

    m3u8返回响应数据

  3. 解析数据 -> 提取 所有ts文件链接

第三次请求: 获取完整的视频内容

  1. 发送请求 -> 模拟浏览器对于url地址发送请求

    请求链接: ts文件链接

  2. 获取数据 -> 获取服务器返回响应数据

    每个视频片段内容

  3. 保存数据 -> 把所有片段保存合并完整视频内容

代码展示

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 )
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 导入数据请求模块
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/119.0.0.0 Safari/537.36'
}

请求网址

url = 'https://www.cqjschungao.com/cupfoxplay/609-3-1/'

发送请求

response = requests.get(url=url, headers=headers)

获取数据

html_data = response.text

解析数据 \ 转义字符, 把含有特殊含义字符串, 转义成本身字符不含有其他的意思 ?

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
m3u8_url = re.findall('"url":"(.*?)","url_next"', html_data)[0].replace('\\', '')
title = re.findall('<h1 class="movie-list-title">(.*?)在线播放</h1>', html_data)[0]
print(title)
print('m3u8_url:', m3u8_url)

“”"
解密
“”"

key_data = m3u8_url.split('/')[-2]

获取密钥

key_url = f'https://v.gsuus.com/play/{key_data}/enc.key'
key = requests.get(url=key_url, headers=headers).content
print('密钥:', key_url)

解码器

ci = AES.new(key, AES.MODE_CBC)

发送请求: 请求m3u8链接 & 获取响应数据

m3u8_data = requests.get(url=m3u8_url, headers=headers).text

解析数据

ts_list = re.findall(',\n(.*?)\n#E', m3u8_data)
  • re.findall(‘匹配数据’, ‘数据源’) -> 找到所有数据

    从什么地方, 去匹配什么数据

re.findall(‘“url”:“(.*?)”,“url_next”’, html_data)

从 html_data 里面, 去匹配 从"url":"开始 到 ","url_next"截至 中间内容提取出来

for循环遍历 ts_list 列表(数据容器)

'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
for ts in ts_list:print(ts)

获取视频内容

    ts_content = requests.get(url=ts, headers=headers).content

解密视频内容

    content = ci.decrypt(ts_content)with open(file='video\\' + title + '.mp4', mode='ab') as f:

写入数据

        f.write(content)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

这篇关于Python采集茶杯狐影视网内容下载, m3u8 AES解密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464506

相关文章

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

Android多线程下载见解

通过for循环开启N个线程,这是多线程,但每次循环都new一个线程肯定很耗内存的。那可以改用线程池来。 就以我个人对多线程下载的理解是开启一个线程后: 1.通过HttpUrlConnection对象获取要下载文件的总长度 2.通过RandomAccessFile流对象在本地创建一个跟远程文件长度一样大小的空文件。 3.通过文件总长度/线程个数=得到每个线程大概要下载的量(线程块大小)。

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

Steam邮件推送内容有哪些?配置教程详解!

Steam邮件推送功能是否安全?如何个性化邮件推送内容? Steam作为全球最大的数字游戏分发平台之一,不仅提供了海量的游戏资源,还通过邮件推送为用户提供最新的游戏信息、促销活动和个性化推荐。AokSend将详细介绍Steam邮件推送的主要内容。 Steam邮件推送:促销优惠 每当平台举办大型促销活动,如夏季促销、冬季促销、黑色星期五等,用户都会收到邮件通知。这些邮件详细列出了打折游戏、

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

python 喷泉码

因为要完成毕业设计,毕业设计做的是数据分发与传输的东西。在网络中数据容易丢失,所以我用fountain code做所发送数据包的数据恢复。fountain code属于有限域编码的一部分,有很广泛的应用。 我们日常生活中使用的二维码,就用到foutain code做数据恢复。你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。 为了实现并理解foutain

python 点滴学

1 python 里面tuple是无法改变的 tuple = (1,),计算tuple里面只有一个元素,也要加上逗号 2  1 毕业论文改 2 leetcode第一题做出来

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93aC5mYW5nLmtlLmNvbS9sb3VwYW4v 目标:采集对应城市的