前言

爬虫获取m3u8视频资源的步骤

目前所要作的流程处理先把m3u8里下载链接批量提取.png把这几百个切片链接先批量下载.png再批量改文件后缀为.ts  再按照m3u8文件提取所有不规则链接文件的【顺序】.png 然后改切片的文件名为0001,0002,0003......顺序.png然后用ffmpeg或者moviepy或者其他工具合并就行.png

看起来也没有那么麻烦…(流汗黄豆)

开始操作

目前已有材料:爬下来的网页源码和从中获取的m3u8文件

把.m3u8改成.txt格式便于操作

批量正则提取和下载

写脚本从原来的m3u8文件中正则表达提取出所有干净的下载链接,将其放到另外一个.txt文件;并且从中下载所有的切片文件

程序代码如下

import requests
import re
from io import BytesIO
import urllib3
import ost = open("b7729bb022ae5d382df1fd28ac61f1178c3f424c.txt", "r", encoding='utf-8')
data = t.readlines()
t.close()for line in data:pattern = re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')string = str(line)url = re.findall(pattern,string)f1 = open("url提取.txt", "a+", encoding='utf-8')for urls in url:f1.write(urls+'\n')f1.close()
print("经处理已成功正则提取出所有下载链接")
file = open("./url提取.txt")  # 打开存放链接的TXT文档
num = 0
while 1:line = file.readline()  if not line:breaknum += 1image_url = lineima = image_url.replace('\n','')try:requests.packages.urllib3.disable_warnings()r = requests.get(ima,verify=False)path = re.sub("https://p0.ssl.cdn.btime.com/|https://p1.ssl.cdn.btime.com/|https://p2.ssl.cdn.btime.com/|https://p3.ssl.cdn.btime.com/|https://p4.ssl.cdn.btime.com/", "D:/文章(公开)/视频下载文章/测试集合/测试/test/", line)path = re.sub('\n', '',path)path = path.replace("?size=1x1", "")print(path)f = open(path, "wb")f.write(r.content)  # 将响应对象的内容写下来print("该文件已经下载完毕")f.close()except Exception as e:print('无法下载,%s' % e)continue
print("经处理所有切片文件已经下载完毕")
file.close()

正常运行

生成提取出的下载链接

并且下载到指定位置

运行结束

批量改后缀

程序代码如下

import os
files = os.listdir('.')
for filename in files:portion = os.path.splitext(filename)if portion[1] == ".png":  newname = portion[0] + ".ts"   os.rename(filename,newname)

正常运行

按m3u8指定顺序改文件切片名

接下来就是最关键的根据.m3u8里文件下载链接顺序批量修改文件名的环节

根据已有顺序改文件名为0001,0002,0003…顺序,这对之后的文件合并至关重要

这里就用到刚才提取的url文件

全部替换为.ts结尾且 , 间隔,整理为一行的队列形式

前提需要都准备好了,现在开始批量按照顺序改文件名

程序代码如下

import os
with open("01.txt","r",encoding="utf-8") as f:list =f.readline().split(",")list
print("01.txt内文件名数量:",len(list))filelist=os.listdir(os.getcwd()+"/test")
print("test文件夹内文件数量:",len(filelist))a=1
for i in list:old_name=os.getcwd()+"\\test\\"+iprint("修改旧文件:",old_name)if len(str(a))==1:temp="000"+str(a)elif len(str(a))==2:temp="00"+str(a)elif  len(str(a))==3:temp="0"+str(a)else:temp=str(a)#print(temp)new_name=os.getcwd()+"\\test\\"+temp+".ts"print('新文件:',new_name)a+=1os.rename(old_name, new_name)  # 用os模块中的rename方法对文件改名

正常运行完成

所有视频文件按照指定顺序排列完成

文件合并

然后用ffmpeg或者moviepy包或者其他工具合并就行

注意:前提必须是按照m3u8里下载链接的顺序改文件名(上操作)后才能正常合并出成品视频,否则会导致视频片段混乱(作者亲测)

这里网上随便一搜就找到了

小东西真不错

完成

然后就得到成品的文件了

打开看看

内容清晰,完整流畅,达到目的

OVER
老工具人了

m3u8视频爬虫下载及合并(二)相关推荐

  1. java下载m3u8视频,解密并合并ts(二)

    上一篇 java下载m3u8视频,解密并合并ts(一)--m3u8概述 下一篇java下载m3u8视频,解密并合并ts(三)--代码实现 m3u8链接的获取 样例一:两个m3u8无key 首先在浏览器 ...

  2. java下载m3u8视频,解密并合并ts(三)

    上一篇 java下载m3u8视频,解密并合并ts(二)--获取m3u8链接 编写代码 加载jar包 由于java不支持AES/CBC/PKCS7Padding模式解密,所以我们要借助第一篇下载好的ja ...

  3. Java合并m3u8_m3u8Download java 下载 m3u8 视频,解密并合并 ts java download m3u8 vide @codeKK Android开源站...

    java 下载 m3u8 视频,解密并合并 ts m3u8 链接获取方式以及代码分析请参见: https://blog.csdn.net/qq494257084/article/details/103 ...

  4. python梨视频爬虫下载,反反爬

    python梨视频爬虫下载,反反爬 跟着b站视频学习,发现和视频里面讲的不一样 视频URL改成ajax异步请求得到的 拿到视频url之后发现居然是个假链接不是真实的 仔细观察真实的视频url发现,刚才 ...

  5. m3u8 视频的解密,合并处理 通过java代码

    前言 就是一堆废话,可以不看,文末有代码,可以直接down 通过UC下载了一些视频,觉得过于精彩,应该保存下载,不过它是m3u8格式的, 之前为了给手机刷机,资料必须得备份,于是拷贝了出来,把手机上的 ...

  6. 一键视频爬虫下载神器,广告还没加载就下载完了

    欢迎关注微信公众号数云智连. 关注后将收到: 1.各式各样的公开数据.采集程序提供,如广交会.海关数据.股票数据等等,你有需要的数据也请留言,评估后将会在采集后在公号发布: 2.提升个人能力的办公技巧 ...

  7. python合并ts视频_python爬取视频网站m3u8视频,下载.ts后缀文件,合并成整视频

    最近发现一些网站,可以解析各大视频网站的vip.仔细想了想,这也算是爬虫呀,爬的是视频数据. 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 "一出好戏" . ...

  8. m3u8视频格式下载并转换为mp4(ffmpeg)

    通过在网络上查询资料以及博客后发现了下载m3u8转换为mp4得方法,但是在使用后发现转换后的mp4文件信息不完善.如果您使用过网上流传最广的转换方法会发现当你查看mp4文件详细信息时是没有播放时长等数 ...

  9. Android,播放m3u8视频和下载m3u8的视频

    因最近项目需要,研究了一个礼拜的m3u8.格式为m3u8的视频,其实是由多个.ts文件组成在一起播放的.下面有些资料是参考了网上的,总体概括下实现思路: 1.根据后台给出的m3u8的地址,实现播放,核 ...

最新文章

  1. Spring Cloud Alibaba 基础教程:Nacos 生产级版本 0.8.0
  2. 香港大学自然语言处理实验室PhD/RA招生(HKU NLP)
  3. MongoDB(一):简介
  4. 笔记本卡顿不流畅是什么原因_电脑卡顿不流畅是什么原因
  5. C# WinForm窗体四周阴影效果
  6. html表格td的内容修改,点击table中的td,修改td中的内容功能实现
  7. GitHub 报告:中国755万开发者排全球第二
  8. 44. Element insertBefore() 方法
  9. 白话浅谈——组播那点事
  10. 数学实验基于matlab软件,数学实验:基于MATLAB软件
  11. gp3688 uhf2扩频_摩托罗拉GP3688_GP3188写频软件
  12. 前端微信支付代码(公众号支付)
  13. 基于Lasso回归筛选变量构建Cox模型并绘制Nomogram
  14. 【VirtualBoxUbuntu】VirtualBox中Ubuntu虚拟机磁盘碎片整理并压缩磁盘空间
  15. centos ffmpeg 加水印
  16. 想了解Intel vPro(博锐)技术,就来Intel vPro虚拟展厅
  17. 非线性混合效应 NLME模型对抗哮喘药物茶碱动力学研究
  18. 周末imac机重装win7,装得我抓狂
  19. USBPCAP工具介绍
  20. 解包酷派CPB包任意机型

热门文章

  1. AtCoder Beginner Contest 244 B题(超详讲解)
  2. ufs 固态硬盘_手机机身存储到底有多快?UFS闪存和电脑固态硬盘谁更强?
  3. 基于RNN(循环神经网络)的北京雾霾天气指数的预测(keras实现RNN,LSTM神经网络算法)
  4. solrCloud集群的搭建
  5. 关于举办第三届全国Revit开发实战训练课程的通知
  6. 一文彻底搞懂I/O多路复用及其技术
  7. 编写多线程Java应用程序
  8. 使用MC55实现GPRS通信
  9. clover引导macos big sur_【黑苹果】手动制作macOS启动U盘及EFI配置指南
  10. 计算机二级index函数怎么用,Excel函数-match、index(上)-计算机二级Office