Python实战 | 如何抓取腾讯视频

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

爬虫:

作用: 批量采集数据 / 模拟用户行为

原理: 模拟成 客户端 向 服务器 发送网络请求

环境介绍:

  • python 3.8 解释器

  • pycharm 编辑器

第三方模块:

  • requests >>> pip install requests

  • tqdm >>> pip install tqdm

模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)

实现一个爬虫案例:

  1. 找数据

    m3u8 视频流

    mp4 1:00:00 10s为一个片段 360个片段 每个片段为一个视频文件 .ts

    所有的.ts后缀的视频文件地址 存储到一个文本文件当中 .m3u8

    找 .m3u8 这个文件 找到他 我们就可以去下载这个视频了
    https://f3391cba103b6a8264fc3c9e94606424.v.smtcdns.com/vipts.tc.qq.com/A76wLQY3sMxau30YvTaKOxtigWZqDWZbRZ-halc9ZfOQ/B_tRCdt2L6hl1ezG-aht1_p7GvaLBNzsRdJxWJcVS2pfaZ0OAEYH2aMWJGYS0e5l6q/svp_50112/_mwejXA_NuoJo3UmcI5sACyBgOz1bMgT33K-QfNGGUm33saIjJ3wZ3s8zCaccLPBRYzwPbBJMjuiwj22dJsQ5idKx2bGvNsTWVwYCUuOGFdTrd0VBotPoW2ydxmkfsHV-zzcuoZEwHVbcEifiQFxL1jOnfepg96z2F8RRsVWI6H4tMv7TgpVArjrFUwGqlTRyku1b2lpG2lLl_TRWjEeLFa9tlJCmlHDc6EYIZk-9u6OKHWaZLgQtA/gzc_1000102_0b53faaggaaat4aheps3w5s4akgdmmxaaz2a.f322016004.ts.m3u8?ver=4

  2. 代码实现

    用代码访问这个链接

代码展示

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import requests     # 需要额外安装
import re
from tqdm import tqdmurl = 'https://f3391cba103b6a8264fc3c9e94606424.v.smtcdns.com/vipts.tc.qq.com/A76wLQY3sMxau30YvTaKOxtigWZqDWZbRZ-halc9ZfOQ/B_tRCdt2L6hl1ezG-aht1_p7GvaLBNzsRdJxWJcVS2pfaZ0OAEYH2aMWJGYS0e5l6q/svp_50112/_mwejXA_NuoJo3UmcI5sACyBgOz1bMgT33K-QfNGGUm33saIjJ3wZ3s8zCaccLPBRYzwPbBJMjuiwj22dJsQ5idKx2bGvNsTWVwYCUuOGFdTrd0VBotPoW2ydxmkfsHV-zzcuoZEwHVbcEifiQFxL1jOnfepg96z2F8RRsVWI6H4tMv7TgpVArjrFUwGqlTRyku1b2lpG2lLl_TRWjEeLFa9tlJCmlHDc6EYIZk-9u6OKHWaZLgQtA/gzc_1000102_0b53faaggaaat4aheps3w5s4akgdmmxaaz2a.f322016004.ts.m3u8?ver=4'
m3u8_text = requests.get(url).text
# 下载视频
#   所有的ts 片段视频链接获取到了 但是 链接不够完整
#   并且链接 现在还不能单独提取出来
m3u8_text = re.sub('#E.*', '', m3u8_text)
sub_ts = url.split('gzc')[0]
ts_list = m3u8_text.split()
for ts in tqdm(ts_list):ts_url = sub_ts + ts# 批量访问 ts_url 拿到 ts对应的视频数据 并且保存合并ts_data = requests.get(ts_url).contentwith open('吞噬星空.mp4', mode='ab') as f:f.write(ts_data)

尾语

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

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

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

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

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

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

相关文章

委托线程安全

委托线程安全是指将对共享数据的访问委托给线程安全的类,从而避免在调用方代码中进行额外的同步控制。这可以通过将线程安全性限定在一个类内部来实现。以下是一个简单的例子: 假设有一个计数器类 Counter,它不是线程安全的。 public class…

Unity 关于刚体模拟爆炸效果使用的方法

Unity刚体要模拟爆炸效果,可以使用AddExplosionForce方法。 它有3个语法: public void AddExplosionForce(float explosionForce, Vector3 explosionPosition, float explosionRadius); //默认upwardsModifie0.0f,ForceMode.Force模式public void AddE…

Docker可视化管理工具docker.ui的搭建

1、拉取镜像 docker pull joinsunsoft/docker.ui:1.0.1 2、运行容器 docker run -d --name docker.ui --restart always -v /var/run/docker.sock:/var/run/docker.sock -p 8999:8999 joinsunsoft/docker.ui:1.0.13、地址访问 访问地址:http://localhost:8999/lo…

CXL RAS功能简介

一般来说,RAS(可靠性、可用性和可服务性)是计算机硬件和系统设计中的重要概念。 在CXL(Compute Express Link)接口中,RAS功能包括以下方面: 错误检测和纠正:CXL可能支持各种错误检测…

使用git命令行来拉取项目

哈哈哈,在校的我可能更偏向用git,可是在实习过程中大家都用的是图形化工具,因为还不是太熟练,所以我目前还是在用的git命令行。 下边说一下大致流程吧! //拉项目 git clone 仓库地址 //根据项目来安装依赖 npm或者y…

IP小知识

概述 IP是英文Internet Protocol(互联网协议)的缩写。它是一种网络通信协议,用于在计算机网络中传输数据。 IP协议定义了数据在网络中的传输方式和交换方式,它为每台连接到互联网的计算机分配一个唯一的标识符,称为IP…

Java8实战-总结51

Java8实战-总结51 CompletableFuture:组合式异步编程响应 CompletableFuture 的 completion 事件付诸实践 小结 新的日期和时间AP CompletableFuture:组合式异步编程 响应 CompletableFuture 的 completion 事件 付诸实践 现在通过randomDelay方法模拟…

AOA_send_camer_data

Host端 Host 端获取到Camera 数据流经过Mediacodec编码后为H264流发送到另一个设备上面进行显示预览; /**1.建立AOA通信 *2.获取Camera预览数据流 *3.对Camera进行编码为H264 *4.发送数据到device端,AOA数据发送最大量为16K(分包处理) *5.接收到数据后Mediacodec进行解码显…

公众号提高上限怎么操作?

一般可以申请多少个公众号?众所周知,在2013年前后,公众号申请是不限制数量的,后来企业开始限制申请50个,直到2018年的11月tx又发布,其中个人主体可申请公众号由2个调整为1个,企业主体由50个调整…

CAPL——发送自定义报文

文章目录 一、前言二、CANoe操作二、CAPL程序三、Trace结果一、前言 CAPL是CANoe自带的一个编程语言,基本语法基于C语言,通过CAPL可以发挥CANoe更高效、更强大的功能。CAPL最大的特点就是可以编程灵活的完成报文的发送,报文包括通信报文及诊断报文 本文讲述模拟一个报文周…

14 Vue3中组件的props属性

概述 Let’s look at a simple HelloWorld single-file component. You can find this at ./src/components/HelloWorld.vue, generated automatically when you create a Vue project with Vite. 让我们来看一个简单的 HelloWorld 单文件组件。您可以在 ./src/components/He…

腾讯技术工程总结-如何写好技术文章?

文章参考:腾讯技术工程《写好一篇高质量的技术文章》 如何写好技术文章? 大家可以先思考一下,为什么要写技术文章? 我们写技术文章的目的是什么呢?面向哪些人呢? 面向人群 写技术文章的目的毫无疑问是为…

腾讯地图绘画多边形和计算面积

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>地图</title></head><script src…

WorkPlus即时通讯app-私有化部署的最佳解决方案

随着数字化时代的到来&#xff0c;企业在业务发展和沟通协作方面面临着前所未有的挑战。传统的通讯工具无法满足安全、高效、全面掌控业务和生态的需求。而在这个背景下&#xff0c;WorkPlus作为安全专属的移动数字化平台崭露头角&#xff0c;成为企业实现全面业务掌控的最佳选…

Redis深入理解、面试常问、疑难解答

Redis常问面试题 Redis常问面试题1、Redis 支持哪几种数据类型&#xff1f;2、Redis 做登录是怎么实现的&#xff1f;和传统session有何区别&#xff1f;3、什么是缓存穿透&#xff1f;4、什么是缓存雪崩&#xff1f;5、什么是缓存击穿&#xff1f;6、Redis高可用的几种实现方式…

从零开始学Python系列课程第15课:range 方法详解

在循环结构上篇讲述 for-in 循环时&#xff0c;有一个 range 方法的知识点没给大家讲&#xff0c;本篇文章我们单独给大家做一个详细讲解。 range 方法的作用就是根据给定的 start、stop、step 三个参数&#xff0c;生成一个包含有规律整数的容器。 以下是 range 的语法规则&am…

C++ lambda 表达式

lambda 表达式 lambda 表达式有时也称为 lambda 函数&#xff0c;或者直接简称为 lambda &#xff1b;它是定义和使用匿名函数对象的一种简便的方式。 一条 lambda 表达式包含以下组成要件&#xff1a; 一个可能为空的捕获列表&#xff0c;指明定义环境中的哪些名字能被用在 …

70.爬楼梯

题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a; 给定 n 是一个正整数。 示例 1: 输入&#xff1a; 2 输出&#xff1a; 2 解释&#xff1a; 有两种方法可以爬到楼顶…

Python之初识类与对象

类的概念与定义 在生活中&#xff0c;我们走在路边&#xff0c;看到一辆车&#xff0c;大脑中首先想到的是“这是一辆车&#xff0c;然后才是这是一辆什么牌子的车”&#xff0c;在这里&#xff0c;我们就用到了编程中的类的概念。同样的&#xff0c;看到一条小狗&#xff0c;…

React-Hooks

一、类组件和函数式组件的对比 Hook 的特性&#xff1a;在编写class 的情况下&#xff0c;使用state 以及其他React 特性&#xff08;比如生命周期&#xff09; 类组件相比于函数式组件的优势&#xff1a; 类组件可以定义自己的state&#xff0c;用来保存组件自己内部的状态…