python 爬取龙岭迷窟视频 对于视频格式m3u8 下载多个ts文件 合并成MP4

标签: python

龙岭迷窟视频的爬取 对于视频的爬取大多数没有直接给出MP4链接 大多数是ts文件合成

1 按f12 找到m3u8下载 下面代码get_m3u8_save函数中保存

在这里插入图片描述

2 找到ts中url把提取m3u8 文件中的进行拼接 如下面get_ts_url函数

在这里插入图片描述

3下载ts文件下面代码 download函数 本人下载ts截图如下:

在这里插入图片描述

合并 成MP4 格式 copy /b D:\PycharmProjects\baidu\video* D:\PycharmProjects\baidu\video\new.mp4 /b 后面是ts源地址 *表示所有 后面跟新的名称mp4格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

详细代码如下:

import requests
from threading import *
import time
import random
# https://www.88ysw.com/  88影视网

# Python的urllib3软件包的证书认证及警告的禁用
import urllib3
nMaxThread = 5
connectlock = BoundedSemaphore(nMaxThread)
urllib3.disable_warnings()
header = {
         'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0'
    }
def get_m3u8_save(self,url):
    m3u8 = requests.get(url=url,headers=header)
    with open("m3u8_path/m3u8_path.txt", "w") as f:
        f.write(m3u8.text)
    f.close()
def get_ts_url(ts_base_url):
    urls = []
    with open("m3u8_path/m3u8_path.txt", "r") as file:
        lines = file.readlines()
        for line in lines:
            if line.endswith(".ts\n"):
                urls.append(ts_base_url + line.strip("\n"))
    print(urls)
    return urls


def download(ts_urls):

    try:
        for i in range(len(ts_urls)):
            ts_url = ts_urls[i]
            file_name = ts_url.split("/")[-1]
            res = requests.get(ts_url, headers=header,stream=True,verify=False)
            with open("./video/{0}".format(file_name), 'wb')as f:  # 保存数据流为ts格式
                for chunk in res.iter_content(chunk_size=2048):
                    f.write(chunk)
            print(file_name+"下载结束".format(i))
            # time.sleep(random.random()*0.1)
    finally:
        print("下载失败--------")
        connectlock.release()
if __name__ == '__main__':

    url = "https://yuledy.helanzuida.com/20200422/2931_1a8a5c71/1000k/hls/index.m3u8"
    ts_base_url = "https://yuledy.helanzuida.com/20200422/2931_1a8a5c71/1000k/hls/"
    # get_m3u8_save(url)
    urls = get_ts_url(ts_base_url)
    connectlock.acquire()
    t = Thread(target=download, args=(urls,))
    t.start()

不懂得话可以随时提问哈

版权声明:本文为hou9876543210原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hou9876543210/article/details/105869955

智能推荐

视频工具下载(m3u8、MP4)

下载视频m3u8工具 + FFmpeg 转 ts 格式 笔记有点乱 都是一笔带过(有链接),可以参考别人教程 1、下载m3u8工具(支持win和liunx) 下载链接 20201019 (都是2020年的,还是可以用) 使用教程 https://www.52pojie.cn/thread-1287140-1-1.html (win到liunx都有) (win自动转换格式 ,liunx需使...

web安全简易规范123

web安全,大公司往往有专门的安全开发流程去保证,有专门的安全团队去维护,而对于中小网络公司,本身体量小,开发同时兼带运维工作,时间精力有限,但是,同样需要做一些力所能及的必要的事情。有时候,安全威胁并不是因为你的防盗窗被人撬开了,而是你晚上睡觉的时候忘了关门,而关上门对开发来说也许只是举手之劳。 1、不要用root,确定使用的中间件和框架是否默认打开了后门 我们总会在线上使用部署一些中间件、开源...

css弹性盒模型详解----justify-content

本篇文章详细介绍justify-content 效果演示如下: 效果演示如下: 效果演示如下: 效果演示如下: 效果演示如下...

html5拖放--15行js代码实现两个div内容互换

本文首发于我的个人博客:http://cherryblog.site/ ,欢迎大家前去参观 本文项目地址,sortable插件地址:https://github.com/sunshine940326/sortable demo地址:https://github.com/sunshine940326/drag 在写我们后台的管理程序中需要有一个拖放的功能,然后我们有一个这样的功能,实现11个固定且大...

git切换分支报错,不管什么标题名字,都报非法字符,所以就不起名字了。

切换分支的时候,报了标题这么个错误,error: ”xxx did not match any file(s) known to git. 看见不能切换分支,我首先 git status 查看了一下当前状态,如下图 然后,就会发现,其实我的这个错误非常明显,就是在我的 beat 分支下有文件修改,所以切换不了。ok,解决方法: 1. 如果修改的这些文件没什么用,完全可以删除。(我这儿的...

猜你喜欢

Oracle分析函数之LEAD和LAG实际应用

Oracle分析函数之LEAD和LAG实际应用 在前几天的工作中按照客户的需求,需要对客户信息进行数据分析,即某人存在多个状态的账号,将客户信息账号状态分析出结果,和客户确认汇报,根据保留规则,保留唯一账号,以保证程序可用性。起初,根据聚合函数进行查询分析,需要写一大串的SQL,即不美观又复杂,很容易产生错误。后续想到Oracle分析函数中的lead和lag,SQL简洁了很多且容易产生报告数据。 ...

小知识积累(不断更新中)

判断变量的类型(数组,对象) tyopof:不推荐,因为无法区别数组与对象,数组是对象的子对象 instanceof:可以使用 还可以用来判断是否属于函数 Object.prototype.toString.call():最兼容,推荐使用 定时器的执行顺序或机制 js是单线程的,浏览器遇到setTimeout或者setInterval会把定时器推入浏览器的待执行事件队列里面但是不执行,先执行完当前...

ROS自学实践(6):ROS进行激光SLAM建图——gmapping

本节主要记录运行ROS自带的SLAM建模包gmapping方法,为后续理解这些代码,建立自己的SLAM算法打下基础。 基于粒子滤波算法 二维栅格地图 需要里程计信息 1.通过命令行安装gmapping包 2.配置gmapping节点 3.运行gazebo模型及gmapping节点 4.打开rviz 添加laserscan、map、robotmodel模型 5.移动小车,建立模型 6.保存当前地图 ...

face-api.js中加入MTCNN:进一步支持使用JS实时进行人脸跟踪和识别

如果你现在正在阅读这篇文章,那么你可能已经阅读了我的介绍文章(JS使用者福音:在浏览器中运行人脸识别)或者之前使用过face-api.js。如果你还没有听说过face-api.js,我建议你先阅读介绍文章再回来阅读本文。 和往常一样,本文中为你准备了一个代码示例。我们将解析一个小的应用程序,这个程序将在浏览器中访问摄像头图像执行实时人脸检测和人脸识别,让我们开始吧! 使用face-api.js进行...

Centos yum安装tomcat8 (阿里云的端口坑!!!)

1.官网下载上传至服务器并解压 2.将解压下来的文件移动到自己的目录下 3.进入tomcat 的bin目录启动服务 4.配置 5.阿里云的端口 阿里云服务器 阿里云控制台打开端口:...