当前位置: 首页 > news >正文

【Python实战案例】Python3网络爬虫:“可惜你不看火影,也不明白这个视频的分量......”m3u8视频下载,那些事儿~

前言

哈喽!上午好嘞,各位小可爱们!有没有等着急了呀~

由于最近一直在学习新的内容,所以耽搁了一下下,抱歉.jpg 双手合十。

所有文章完整的素材+源码都在👇👇

粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。

今天稍微赶了一下下,嘿嘿,想着还是给大家更新一下蛮,爬虫的内容基本上都过不了审核,

可能是我写的方式不对,思考.jpg,这么久了还是没找到好办法,大概率知道不能出现某些网

站的名字网址等,所以最近给大家更新的爬虫系列,就简简单单给大家写一点儿叭~

部分爬虫的代码是有录制完整的视频滴 讲解的更加仔细哈,需要的还是可以滴一下我哦!

好啦,开始今天的正题吧——Python采集某网站m3u8 格式视频哦 ~

正文

一、课前准备

运行环境:Python3(解释器版本我用的3.7,识别代码)Pycharm(编辑器 编辑代码滴  )

模块安装如下——

requests——pip install +模块名 或镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名

内置模块:import re   import json  安装好Python环境即可。

二、爬虫的基本流程

明确自己的需求---> 视频内容以及视频标题 - 通过开发者工具<>抓包分析,分析视频是从哪里来的 - F12 fn+f12 右击页面点击检查 - a站 m3u8视频格式 ---> media 是没有数据 mp4文件 ---> 整个视频内容 m3u8视频格式 ---> 把 整个视频内容 分割非常多小片段 - 代码的实现步骤 1. 发起请求 2. 获取数据 3. 解析数据 4. 保存数据 

三、抓取目标

1)目标网址

https://www.acfun.cn/v/ac13524296

分析视频是从哪里来的 - F12。

找到User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36

2)代码实现

"""
# 导入模块
import requests
# 导入正则模块
import re
# 导入数据格式化模块
from pprint import pprint
import json
url = 'https://www.acfun.cn/v/ac13524296'
# 模拟浏览器 请求头
# User-Agent 用户代理
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'
}
# 1. 发起请求
response = requests.get(url, headers=headers)
# 2. 获取数据 获取响应
# print(response.text)
# 3.数据解析
"""
.*? 元字符
. 匹配任意字符除了换行符之外
*匹配前一个字符0或者无限个
? 非贪婪匹配
"""
# 提取标题p
title = re.findall('"title":"(.*?)",',response.text)[1]
# print(title)
# 通过re提取视频内容信息
html_data = re.findall('window.pageInfo = window.videoInfo =(.*?);',response.text)[0]
# 数据转化json
json_data = json.loads(html_data)
# pprint(json_data)
# 字典取值 dict = {键值:value值} dict[键值]
m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]
pprint(m3u8_url)
m3u8_data = requests.get(m3u8_url, headers=headers).text
# print(m3u8_data)
m3u8_data=re.sub('#E.*','',m3u8_data).split()
# print(m3u8_data)
for ts in m3u8_data:# print(ts)ts_url = 'https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/hls/'+tsts_name = ts.split('.')[1]# print(ts_url,ts_name)ts_content = requests.get(url=ts_url,headers=headers).content#  保存 图片 音频 视频 都是字节流 二进制with open('video\\'+ts_name+'.mp4' , mode='wb') as f:f.write(ts_content)

四、效果展示

A站是m3u8的数据格式,很多人就会问了,你怎么知道,你为什么知道,你凭什么知道。

这些咱们都是可以通过开发者工具对于网页内容的分析,可以看到链接的后缀都是ts结尾的,

这样的文件内容都是你m3u8格式,是把整个视频分成多段的ts文件。

我们可以看到一段视频仅仅只有5秒钟的时间。对于ts文件有一个特性,它就是会存在一个

m3u8文件里面,所有的ts文件都在那,所以只需要找到m3u8的文件就可以了。

视频文件:

如何合成ts文件变成mp4呢?

添加到压缩文件——更改压缩文件后缀名以及压缩方式——后缀名改为:.mp4,压缩方式改

为:存储,然后点击确定即可。

播放视频:

特别说明:这样合并的前提是你的ts文件都是0000,然后0001 这样按照顺序排列的,不然你

合并出来之后播放顺序是乱的。

总结

XX忍者这部漫画连载了将近二十年,正好是一代人从小成长起来的时间。可以说不少人的童年

是伴随着XX忍者而成长起来的。让人记忆深刻的不仅有强大的忍者,眼花缭乱的忍术,还有一

些“童年阴影”的画面。让那个时候的我们记忆犹新。今天带大家爬完这些视频之后,有没有勾

起了你童年时期的回忆呢? 

✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~

 🔨推荐往期文章——

1.0    Python爬虫入门推荐案例:学会爬虫_表情包手到擒来~

1.1 【Tkinter界面化小程序】用Python做一款免费音乐下载器、无广告无弹窗、清爽超流畅哦

1.2  【Python爬虫实战】 不生产小说,只做网站的搬运工,太牛逼了~(附源码)

1.3 【Python抢票神器】火车票枪票软件到底靠谱吗?实测—终极攻略。

1.4 【Python实战】WIFI密码小工具,甩万能钥匙十条街,WIFI任意连哦~(附源码)

1.5  【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~

1.6  【Python实战】年底找工作,年后不用愁,多个工作岗位随你挑哦~

1.7  【Python实战】听书就用它了:海量资源随便听,内含几w书源,绝对精品哦~

1.8  【Python实战】海量表情包炫酷来袭,快来pick斗图新姿势吧~(超好玩儿)

       

🎁文章汇总——

Python文章合集 | (入门到实战、游戏、Turtle、案例等)

(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)                                              

相关文章:

【Python实战案例】Python3网络爬虫:“可惜你不看火影,也不明白这个视频的分量......”m3u8视频下载,那些事儿~

前言 哈喽&#xff01;上午好嘞&#xff0c;各位小可爱们&#xff01;有没有等着急了呀~ 由于最近一直在学习新的内容&#xff0c;所以耽搁了一下下&#xff0c;抱歉.jpg 双手合十。 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移…...

UE4:使用样条生成随机路径,并使物体沿着路径行走

一、关于样条的相关知识 参考自&#xff1a;样条函数 - 馒头and花卷 - 博客园 三次样条&#xff08;cubic spline&#xff09;插值 - 知乎 B-Spline(三)样条曲线的性质 - Fun With GeometryFun With Geometry 个人理解的也不是非常深&#xff0c;但是大概要知道的就是样条具…...

计算机组成原理(判断题)

计算机控制器是根据事先编好的程序&#xff0c;根据其指令来进行控制只会每一步骤的操作&#xff1b; 面向主存的双总线结构计算机系统&#xff0c;因在CPU与主存之间增加了一组存储器总线&#xff0c;由于通过存储器总线访存&#xff0c;提高了CPU的访存速度&#xff0c;也减轻…...

error: failed to push some refs to ... 就这篇,一定帮你解决

目录 一、问题产生原因 二、解决办法 三、如果还是出问题&#xff0c;怎么办&#xff1f;&#xff08;必杀&#xff09; 一、问题产生原因 当你直接在github上在线修改了代码&#xff0c;或者是直接向某个库中添加文件&#xff0c;但是没有对本地库同步&#xff0c;接着你想…...

DAMA数据管理知识体系指南之数据仓库和商务智能管理

第9章 数据仓库和商务智能管理 9.1简介 数据仓库&#xff08;Data Warehouse,DW)由两个主要部分构成&#xff1a;首先是一个整合的决策支持数据库&#xff0c;其次是用于收集、清洗、转换、存储来自于各种操作型数据源和外部数据源数据的相关软件程序。两者结合以支持历史的、…...

PHP的五种常见设计模式

工厂模式 最初在设计模式 一书中&#xff0c;许多设计模式都鼓励使用松散耦合。要理解这个概念&#xff0c;让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时&#xff0c;就会发生问题&#xff0c;系统其他部分 —— 您曾认为完全不相关的部分中也有…...

教你搞懂线段树,从基础到提高

秋名山码民的主页 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f64f;作者水平有限&#xff0c;如发现错误&#xff0c;还请私信或者评论区留言&#xff01; 目录前言线段树逻辑概念线段树的俩个重要用处代码实现线段树题目巩固最后…...

C语言进阶——自定义类型:结构体

&#x1f307;个人主页&#xff1a;_麦麦_ &#x1f4da;今日名言&#xff1a;生活不可能像你想象的那么好&#xff0c;也不会像你想象的那么糟。——莫泊桑《羊脂球》 目录 一、前言 二、正文 1结构体 1.1结构体的基础知识 1.2结构的声明 1.3特殊的声明 1.4结构体变量的…...

SpringSecurity学习笔记01

目录 一、课程介绍 二、框架概述 三、入门案例 四、基本原理&#xff08;过滤器链&#xff09; 五、基本原理&#xff08;过滤器加载过程&#xff09; 六、基本原理&#xff08;两个重要的接口) 七、web权限方案-用户认证&#xff08;设置用户名密码上&#xff09; 八、…...

Python语言零基础入门教程(十一)

Python 列表(List) 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置&#xff0c;或索引&#xff0c;第一个索引是0&#xff0c;第二个索引是1&#xff0c;依此类推。 Python有6个序列的内置类型&#xff0c;但最常见的是列表和元组。 序列都可以…...

现货白银基础知识

任何活动&#xff0c;任何项目&#xff0c;任何工作都离不开基础知识&#xff0c;这是肯定的。万丈高楼平地起&#xff0c;要想要简称百层高楼&#xff0c;首先得把低级打好&#xff01;现货白银投资也是一样的道理&#xff0c;现在我们就来一起聊聊现货白银基础知识的问题&…...

数据库原理及应用基础知识点

数据库原理基础知识点大全数据库原理及应用1、数据库系统概述1.1 基本概念1.2 数据模型1.3 数据库系统的结构2、实体 -- 联系模型2.1 基本概念2.2 实体-联系图2.3 弱实体集3、关系数据模型3.1 关系数据库的结构3.2 从ER模型到关系模型3.3 关系操作、完整性约束、关系代数4、关系…...

【数据结构】栈(stack)

写在前面本篇文章开始讲解栈的有关知识&#xff0c;其实把顺序表和链表学好&#xff0c;那么这一章便不在话下&#xff0c;栈实际上就是顺序表或链表的一些特殊情况。用顺序表实现的栈叫做顺序栈用链表实现的栈叫做链栈文章的内容分为几个部分&#xff0c;希望读者能快速了解文…...

初识shell

文章目录一、shell基本知识1.1为什么学习和使用Shell编程1.2 什么是Shell1.2.1 shell的起源1.2.2 shell的功能1.3 shell的分类1.4 作为程序设计的语言——shell1.5 如何学好shell1.6 shell脚本的基本元素1.7 shell脚本编写规范1.8shell脚本的执行方式1.9 执行脚本的方法1.10 sh…...

程序员如何编写好开发技术文档 如何编写优质的API文档工作

编写技术文档&#xff0c;是令众多开发者望而生畏的任务之一。它本身是一件费时费力才能做好的工作。可是大多数时候&#xff0c;人们却总是想抄抄捷径&#xff0c;这样做的结果往往非常令人遗憾的&#xff0c;因为优质的技术文档是决定你的项目是否引人关注的重要因素。无论开…...

二级C语言操作例题(四十)

一、程序填空题 在此程序中&#xff0c;函数fun的功能是&#xff1a;在形参s所指字符串中寻找与参数c相同的字符&#xff0c;并在其后插入一个与之相同的字符&#xff0c;若找不到相同的字符则不做任何处理。 例如&#xff0c;若s所指字符串”baacda”&#xff0c;中c的字符为…...

vue-router 源码解析(二)-创建路由匹配对象

文章目录基本使用导语createRouterMatcher 创建匹配路由记录addRoute 递归添加matchercreateRouteRecordMatcher 创建matchertokenizePath 解析pathtokensToParser 记录打分insertMatcher 将matcher排序总结基本使用 const routes [{path:"/",component: Demo2,nam…...

分布式新闻项目实战 - 10.Long类型精度丢失问题

怒发冲冠&#xff0c;凭阑处、潇潇雨歇。抬望眼&#xff0c;仰天长啸&#xff0c;壮怀激烈。三十功名尘与土&#xff0c;八千里路云和月。莫等闲、白了少年头&#xff0c;空悲切。 靖康耻&#xff0c;犹未雪。臣子恨&#xff0c;何时灭。驾长车&#xff0c;踏破贺兰山缺。壮志饥…...

如何将本地jar包安装到maven仓库

mvn install:install-file:主要是将本地自定义jar安装到maven仓库&#xff0c;然后在pom中可以直接通过dependency的方式来引用。 此命令有如参数&#xff1a; 命令说明-DgroupId自定义groupId设置groupId 名-DartifactId自定义artifactId设置该包artifactId名-Dversion自定义…...

C++:map和set的认识和简单使用/关联式容器

关联式容器 关联式容器即是用来存储数据的&#xff0c;并且存储的是<Key&#xff0c;Value>结构的键值对&#xff0c;在数据检索时效率比序列式容器高。 序列式容器也就是vector、list、queue等容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

AI语音助手的Python实现

引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...