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

爬取m3u8视频完整教程

爬取步骤:

1.先找到网页源代码

2.从网页源代码中拿到m3u8

3.下载m3u8

4.读取m3u8文件,下载视频

5.合并视频

首先我们来爬取一个星辰影院的电影:

下面我以这个为例:

我们需要在源代码中找到m3u8这个url:

紧接着我们利用下面的方法来进行视频的爬取:

输入网站的url:

url="https://www.xcyy44.com/play/16166_1.html"

打印一下看一下是否有我们要的数据:

resp=requests.get(url)
print(resp.text)

在搜索框中搜索一下发现正是我们要的url:

再利用正则表达式提取一下m3u8的地址:

obj=re.compile(r"url: '(?P<url>.*?)',",re.S) 

得到m3u8的地址并打印:

m3u8_url=obj.search(resp.text).group("url")
print(m3u8_url) 

接下来把m3u8文件下载下来:

用resp2来接受一下m3u8的地址,并把resp2写入到test文件中:

resp2=requests.get(m3u8_url)with open("test.m3u8","wb") as f:f.write(resp2.content)resp2.close()
print('下载完毕')

然后将得到的这些m3u8进行解析:

先将test文件打开读取里面的内容,在利用循环便利一下里面的内容,在利用strip()去除空白,判断是否有#,如果有就继续遍历,找到没有的写入到video中完成一个打印一个:

n=1
with open('test.m3u8','r',encoding='utf-8') as f:for line in f:line = line.strip()   if line.startswith('#'):   continueresp3=requests.get(line)f=open(f'video/{n}.ts','wb')f.write(resp3.content)f.close()resp3.close()n+=1print('完成一个')

最后在把视频片段合并在一起就ok了

完整代码:

import requests
import reobj=re.compile(r"url: '(?P<url>.*?)',",re.S)  #用来提取m3u8的地址url="https://www.xcyy44.com/play/16166_1.html"resp=requests.get(url)
m3u8_url=obj.search(resp.text).group("url")  #拿到m3u8的地址
# print(resp.text)
# print(m3u8_url)
resp.close()#下载m3u8文件
resp2=requests.get(m3u8_url)with open("test.m3u8","wb") as f:f.write(resp2.content)resp2.close()
print('下载完毕')
#
# #解析m3u8文件
n=1
with open('test.m3u8','r',encoding='utf-8') as f:for line in f:line = line.strip()   #去掉空白if line.startswith('#'):   #如果以#开头则会继续循环continue#下载视频片段resp3=requests.get(line)f=open(f'video/{n}.ts','wb')f.write(resp3.content)f.close()resp3.close()n+=1print('完成一个')


文章转载自:

http://cwHwOqNi.dssrt.cn
http://9Y0ZCcqM.dssrt.cn
http://DCPiiaIv.dssrt.cn
http://m7UmlxC9.dssrt.cn
http://pF66nSJi.dssrt.cn
http://7n5p7OMP.dssrt.cn
http://xiIsNYkT.dssrt.cn
http://hi6MtQha.dssrt.cn
http://IYfzupSj.dssrt.cn
http://pPGwQubg.dssrt.cn
http://jTYzOvb1.dssrt.cn
http://qqskZawY.dssrt.cn
http://IjlhSLB4.dssrt.cn
http://Imzvf22I.dssrt.cn
http://PTAzvB4f.dssrt.cn
http://1K4O7WUP.dssrt.cn
http://OCnRSR2G.dssrt.cn
http://LOYwdwg3.dssrt.cn
http://0X51PgVj.dssrt.cn
http://NVGDXL5b.dssrt.cn
http://GN0rxXYp.dssrt.cn
http://kJFqfJfp.dssrt.cn
http://tcgBxcLz.dssrt.cn
http://G77AeYi7.dssrt.cn
http://Zw5xWmhI.dssrt.cn
http://RqZRzYNV.dssrt.cn
http://ACI3TZSd.dssrt.cn
http://MCBXcJSA.dssrt.cn
http://dpE7yE32.dssrt.cn
http://miZK0Yl0.dssrt.cn
http://www.dtcms.com/a/364991.html

相关文章:

  • GitHub 上那些值得收藏的英文书籍推荐(计算机 非计算机类)
  • 一键掌握服务器健康状态与安全风险
  • 前端视角下的 Web 安全攻防:XSS、CSRF、DDoS 一次看懂
  • 02、连接服务器的几种方式
  • 企业文档安全守护者全面测评:7款加密软件深度解析,让商业机密固若金汤
  • JVM分析(OOM、死锁、死循环)(JProfiler、arthas、jvm自带工具)
  • 股指期货可以通过移仓长线持有吗?
  • 基于springboot的在线答题练习系统
  • 【正则表达式】 正则表达式的元字符是什么?正则表达式的元字符有什么作用?
  • 微软rStar2-Agent:新的GRPO-RoC算法让14B模型在复杂推理时超越了前沿大模型
  • DAO LLC:怀俄明州首个承认去中心化自治组织法人化的新里程碑
  • Android Looper源码阅读
  • 手搓一个企业级Agent智能体
  • PyTorch 面试题及详细答案120题(116-120)-- 综合应用与实践
  • 英语四级学习指南
  • 《单链表学习手册:从原理到代码实现(含头插 / 尾插 / 销毁)》
  • go-mapus为局域网地图协作而生
  • 充电枪结构-常规特征设计
  • 小程序点击之数据绑定
  • 【数学建模学习笔记】相关性分析
  • Git在idea中的实战使用经验(二)
  • Elasticsearch 数字字段随机取多值查询缓慢-原理分析与优化方案
  • 408考研——单链表代码题常见套路总结
  • [光学原理与应用-375]:ZEMAX - 分析 - 物理光学图
  • Debezium报错处理系列之第130篇:OutOfMemoryError: Java heap space
  • 复杂网络环境不用愁,声网IoT多通道传输实战经验丰富
  • 数据结构---双向链表
  • 明确用户提问的核心
  • 【计算机网络】TCP状态转移
  • AI随笔番外 · 猫猫狐狐的尾巴式技术分享