如何M3U8视频切片保存到本地,见过视频被别人拿走了吗?

news2024/9/25 21:09:21

一、数据来源分析


    1.明确需求
    网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.html
    数据:视频
    2.抓包分析
    F12
    刷新网站
    搜索关键字找到对应的数据位置 M3U8
    https://vd6.l.qq.com/proxyhttp


二、代码实现步骤


    发送请求
    获取数据
    解析数据
    保存数据  

三、正常爬取代码

import requests
import re
from pprint import pprint
import json

headers = {
    'accept': '*/*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'content-type': 'text/plain;charset=UTF-8',
    'cookie': 'qq_domain_video_guid_verify=507c92025bbf667c; vversion_name=8.2.95; video_omgid=507c92025bbf667c; _qimei_uuid42=1881811391a10031d240126f353cd310f5cbf9f774; pgv_pvid=1833209344; _qimei_fingerprint=28e27f13e024b4e72ed41740c05847af; _qimei_q36=; _qimei_h38=2db8f8c1d240126f353cd31002000004d18818; o_minduid=fEZEgSlaTS1EadavpD_tVESHLMB8xDIk; appuser=6E4931CCE5CB1885; pgv_info=ssid=s6672934747; LPDFturn=798; LPPBturn=773; LKBturn=898; LPLFturn=175; LPSJturn=904; LBSturn=975; LVINturn=259; LPHLSturn=587; LHTturn=445; Lturn=172; LPVLturn=760; LZTturn=929; LDERturn=900',
    'referer': 'https://v.qq.com/',
    'sec-ch-ua': '"Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-site',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36',
}


response = requests.post('https://vd6.l.qq.com/proxyhttp',  headers=headers, data=data)
context = response.json()
voad = context['vinfo']
voaddata = json.loads(voad)
pprint(voaddata)
m3u8_url = voaddata['vl']['vi'][0]['ul']['ui'][-1]['url']
print(m3u8_url)
m3u8 = requests.get(url=m3u8_url, headers=headers).text
# print(m3u8)
ts_list= re.findall(",\n(.*?)\n#",m3u8,re.S)
for ts in ts_list:
    print(ts)
    tsbase = 'https://defaultts.tc.qq.com/vipts.tc.qq.com/AF8H7lDpwYdrycx9TJOH7gFbhFzqHlzIaYXsBfV6ujAk/B_efeEBb4uHJ8TOTkZIB0ooo9N3FBiMa0i4vWoGPCx-MBjTgrF9Gkl8W5Wef7bGPCS/svp_50112/_DGlnT9NscaHvtg1cgDcBjlfH5xG2zUzW2NmMUNUtynTPxeoaA7MHYiUuyjty5_8rEA4fNZmxeV0BI4I-oVG76Z6jQAZmEc7f-gBRCo3zh6gBCRuZBAS-cTfa-9KnKAffogGYhcqpJxmlBE2_oWxeI2io5c8KWb0XX8bWB36KEQykgiHkds7KKMoUe6eWuhYM4l6JW-96NpM0gB1AByhKVjypXNwxYqZVsc1uo2kq2_AT6GZ-w0p_Q/'
    for ts in ts_list:
        print(ts)
        ts_url = tsbase + ts
        print(ts_url)
        res1 = requests.get(url=ts_url)
        with open('./video/第2话.mp4', 'ab') as f:
            f.write(res1.content)

四、自动化爬取视频

import requests
import re
import time
import tqdm  #进度条
from pprint import pprint
import json
import pandas as pd
"""
一、数据来源分析
    网址:https://v.qq.com/x/cover/mzc002006n62s11/e0045s2g2eg.html
    https://vd6.l.qq.com/proxyhttp
"""
from DrissionPage import ChromiumPage,ChromiumOptions
#chrome:version
co = ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chrome.exe")
page = ChromiumPage(co)
page.listen.start('proxyhttp')
page.get("https://v.qq.com/x/cover/mzc002006n62s11/z0045grsctu.html")
time.sleep(10)

res=page.listen.wait()
context=res.response.body
# title = page.ele('class:.txp-next-preview__desc').text
voad = context['vinfo']
voaddata = json.loads(voad)
# pprint(voaddata)
m3u8_url = voaddata['vl']['vi'][0]['ul']['ui'][-1]['url']
tsbase ='/'.join(m3u8_url.split('/')[:-1]) +'/'
# print(m3u8_url)
m3u8 = requests.get(url=m3u8_url).text
print(m3u8)
ts_list= re.findall(",\n(.*?)\n#",m3u8,re.S)
for ts in ts_list:
    print(ts)
    ts_url = tsbase+ts
    print(ts_url)
    res1=requests.get(url=ts_url)
    with open('./video/第1话.mp4','ab') as f:
         f.write(res1.content)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux磁盘操作之df命令

Linux使用df命令,可以查看系统中每个文件系统的总容量、已使用空间、可用空间和使用率。这对于了解磁盘空间的使用情况以及判断是否需要清理或扩展磁盘空间非常有用。 参数说明 df是一个用于显示磁盘空间使用情况的命令,df是disk free的缩写&#xff0…

Kafka事件(消息、数据、日志)的存储

1、查看有关kafka日志配置文件的信息 2、查看kafka全部主题的日志文件 3、查看每个主题的日志文件 4、__consumer_offsets-xx文件夹的作用 package com.power;public class Test {public static void main(String[] args) {int partition Math.abs("myTopic".hashCo…

穿越时光的经典:从LeNet到ResNet,机器学习中的CNN架构进化史

在机器学习的浩瀚星空中,卷积神经网络(Convolutional Neural Networks, CNNs)无疑是最为耀眼的星辰之一,它们以其卓越的图像处理能力,在计算机视觉领域书写了无数辉煌篇章。从最初的简单架构到如今复杂而高效的模型&am…

嵌入式UI开发-lvgl+wsl2+vscode系列:9、控件(Widgets)(二)

一、前言 接下来我们总结第二部分的控件。 二、示例 1、image(图像) 1.1、示例1 #include "../../lv_examples.h" #if LV_USE_IMAGE && LV_BUILD_EXAMPLESvoid lv_example_image_1(void) {LV_IMAGE_DECLARE(img_cogwheel_argb);lv…

【算法进阶2-动态规划】最长公共子序列、欧几里得算法-分数、RSA算法-密码于加密

1 最长公共子序列 2 欧几里得算法 2.1 欧几里得算法-分数 3 RSA算法-密码于加密 1 最长公共子序列 -个序列的子序列是在该序列中删去若干元素后得 到的序列。 例:“ABCD”和“BDF”都是“ABCDEFG”的子序列最长公共子序列(LCS)问题:给定两个序列X和Y,求X和Y长度最大…

请你谈谈:async与await是如何控制异步操作的执行顺序

async/await 是 JavaScript 中用于处理异步操作的一种语法糖,它使得异步代码的编写、阅读和维护变得更加容易和直观。async 和 await 关键字是在 ES2017(ES8)中引入的,旨在简化基于 Promise 的异步操作。 1 async async 是一个函…

Pytorch如何指定device(cuda or cpu)例子解析

代码示例: 在PyTorch中,指定设备(CPU或CUDA)是一个非常重要的步骤,特别是当你在进行深度学习训练时。以下是一些指定设备的详细例子: 检查CUDA是否可用: 首先,你需要检查你的机器是否支持CUDA&…

【C++ Primer Plus习题】5.9

问题: 解答: #include <iostream> #include <cstring> using namespace std;#define SIZE 20int main() {string words[SIZE];string done "done";int count 0;while (true){cout << "请输入单词:" << endl;cin >> words…

2054. 骑马修栅栏

代码 #include<bits/stdc.h> using namespace std; int mp[505][505]; queue<int> ans; int du[505]; int n0,m,u,v;void dfs(int i) {for(int j1;j<n;j){if(mp[i][j]>1){mp[i][j]--;mp[j][i]--;dfs(j);}}ans.push(i); } int main() {cin>>m;for(int …

javaSpringBootmysql的大学生心理健康管理系统39182-计算机毕业设计项目选题推荐(附源码)

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;高校当然也不例外。大学生心理健康管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c…

一文搞懂不确定性原理

在讲这个之前&#xff0c;我们先要搞清楚&#xff0c;什么是不确定性原理&#xff1f;然后再解释它为什么就是不确定的呢&#xff1f; 我还模糊记得我第一次接触这个东西的时候&#xff0c;是在高中物理教材上面提了一下。其中印象最深的就是&#xff1a;动量确定&#xff0c;…

记录|Steam登录不上,打开速度慢等问题

目录 前言一、方法1二、方法2&#xff1a;cmd指令三、steam账号可以多台电脑一起用吗&#xff1f;更新时间 前言 参考视频&#xff1a; Steam登不上&#xff1f;商店打不开&#xff1f;多种方案助你解决问题&#xff01; 一、方法1 打开Steam的快捷方式的“属性”&#xff0c;…

[ICLR-24] LRM: Large Reconstruction Model for Single Image to 3D

[pdf | proj | code] 本文首次提出大型重建模型&#xff08;Large Reconstruction Model, LRM&#xff09;&#xff0c;实现5s内对单图物体的3D重建。在128张A100&#xff08;40G&#xff09;上训练30 epochs。 LRM包含三个部分&#xff0c;具体框架如下&#xff1a; 图片编码…

[C++] 初识 智能指针

标题&#xff1a;[C] 初识 智能指针 水墨不写bug 目录 一、前言 二、智能指针 1. 什么是RAII&#xff1f; 2.智能指针分类 三、智能指针简介 1.std::auto_ptr 2.std::unique_ptr 3.std::shared_ptr 正文开始&#xff1a; 一、前言 C智能指针的出现是有一定的背景的&am…

shell程序设计入门(三)

shell程序设计入门&#xff08;三&#xff09; 导语命令简单命令break:命令continueechoevalexecexitexprprintfreturnshift 复杂指令.exportsetunsettrapfindgrep 总结参考文献 导语 本篇介绍一些shell中常用的复杂命令及其使用&#xff0c;如set、echo、expr等命令 命令 简…

【每日一题】【区间合并】【贪心 模拟】多米诺骨牌 牛客小白月赛99 E题 C++

牛客小白月赛99 E题 多米诺骨牌 题目背景 牛客小白月赛99 题目描述 样例 #1 样例输入 #1 3 6 1 1 1 1 3 2 1 4 3 2 7 9 11 6 2 1 1 1 3 2 1 4 3 2 7 9 11 5 4 1 4 1 1 2 1 2 3 6 8样例输出 #1 3 6 5做题思路 按照玩多米诺骨牌的方式。 先将多米诺骨牌按照骨牌位置从小…

ai伴学之“修图”

偶一张孩子专注的抓拍&#xff0c;通过与ai探讨修图心得让做图理念更完备。 (笔记模板由python脚本于2024年08月25日 18:23:49创建&#xff0c;本篇笔记适合喜欢搞图的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a…

JAVA_10

JAVA_10 JAVA异常机制及bug追踪1. 异常 JAVA异常机制及bug追踪 1. 异常 英文:Exception 所谓异常处理&#xff0c;就是指程序在出现问题时依然可以正确的执行完。Java面向对象处理异常过程 抛出异常:在执行一个方法时&#xff0c;如果发生异常&#xff0c;则这个方法生成代表…

Layer-refined Graph Convolutional Networks for Recommendation【ICDE2023】

Layer-refined Graph Convolutional Networks for Recommendation 论文&#xff1a;https://arxiv.org/abs/2207.11088 源码&#xff1a;https://github.com/enoche/MMRec/blob/master/README.md 摘要 基于图卷积网络&#xff08;GCN&#xff09;的抽象推荐模型综合了用户-项目…

Chainlit接入FastGpt接口完美对接,实现全新的用户聊天界面

前言 由于fastgpt只提供了一个分享用的网页应用&#xff0c;网页访问地址没法自定义&#xff0c;虽然可以接入NextWeb/ChatGPT web等开源应用。但是如果我们想直接给客户应用&#xff0c;还需要客户去设置配置&#xff0c;里面还有很多我们不想展示给客户的东西怎么办&#xf…