广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python爬取视频网站m3u8视频,下
  • 872
分享到

python爬取视频网站m3u8视频,下

视频网站python 2023-01-30 22:01:03 872人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

最近发现一些网站,可以解析各大视频网站的vip。仔细想了想,这也算是爬虫呀,爬的是视频数据。  首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 “一出好戏” 。 分析页面 我用的是chrome浏览器,F12进入查看。选

最近发现一些网站,可以解析各大视频网站的vip。仔细想了想,这也算是爬虫呀,爬的是视频数据。

 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 “一出好戏” 。

分析页面

我用的是chrome浏览器,F12进入查看。选择NetWork的Doc,发现主体部分的数据是从这个网站获取的。

 

在地址栏输入这个链接,跳转到了视频来源的播放页面。

当然,在这个页面就可以直接观看视频了,但是我们要把视频下载下来。

寻找视频文件

仍然是之前那个页面,在Other中,我们发现了一些奇怪的东西。

查一下,m3u8是个啥东西。

m3u8是苹果公司推出一种视频播放标准,是m3u的一种,不过 编码方式是utf-8,是一种文件检索格式,将视频切割成一小段一小段的ts格式的视频文件,然后存在服务器中(现在为了减少I/o访问次数,一般存在服务器的内存中),通过m3u8解析出来路径,然后去请求。

这下就清楚了,这就是我们要找的东西。

点击Response,查看这个.m3u8的文件。观察发现,.ts后缀的文件地址是有规律的。我们只需要下载所有的.ts后缀文件,然后把它们整合成一个文件即可。

合并.ts文件

命令行:“copy /b  F:\f\*.ts  E:\f\new.ts”。

执行该命令后,F:\f目录下的全部TS文件就被合并成一个new.ts文件了(你原来的那堆文件仍然存在)。

这里使用copy命令的文件合并功能进行ts文件的合并,copy后面的 /b  参数表示把文件按二进制格式来合并,如果不加这个参数,则会把目标当成文本文件来合并,并在文件内添加不必要的标记,这会导致播放出错,所以必须加 /b 参数。

编写脚本,下载.ts文件

from urllib import request
import urllib
from time import sleep
import Socket

class CatchVideo(object):
    def __init__(self):
        self.headers = "Mozilla/5.0 (windows NT 6.1; WOW64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/39.0.2171.71 Safari/537.36"
        self.url = ""

    def set_url(self, i):
        if i < 1000:
            self.url = "https://cdn.letv-cdn.com/20180811/YLDUGCD6/1000kb/hls/DtrOg2412%03D.ts" % i
        else:
            self.url = "Https://cdn.letv-cdn.com/20180811/YLDUgCD6/1000kb/hls/DtrOg2412%04d.ts" % i

    # 获取并下载ts文件
    def dl_ts(self, i):
        rq = request.Request(self.url)
        rq.add_header('User-Agent', self.headers)
        response = request.urlopen(rq)
        resread = response.read()
        with open(str(i)+".ts", "wb") as f:
            f.write(resread)
        response.close()# 关闭urlopen方法,防止被ban

    def start_work(self):
        for i in range(0, 1563+1):
            self.set_url(i)
            try:
                self.dl_ts(i)
                print(str(i) + ".ts  success")
                sleep(1)
            except urllib.error.URLError as e:
                print(e.reason)
                break
            except socket.timeout as e2:
                print(e2.reason)
                self.dl_ts(i)


if __name__ == '__main__':
    catch_video = CatchVideo()
    socket.setdefaulttimeout(20)
    catch_video.start_work()

 

运行过程中,出现了两次报错,分别是:

  • urllib.error.URLError :[WinError 10054]  远程主机强迫关闭了一个现有的连接
  • socket.timeout     read读取超时

解决办法:

  1.增加response.close,关闭urlopen方法。

  2.增加time.sleep,有一秒缓冲时间

  3.设置socket.setdefaulttimeout,给socket预留缓冲时间

还存在问题

实际运行过程中,脚本执行效率略低。之后会加入多线程,继续改进,增加运行效率。

 

 

参考博客:

 

https://blog.csdn.net/a33445621/article/details/80377424

https://blog.csdn.net/illegalname/article/details/77164521

 

 

更新代码,加入多进程

修改了start_work方法和主进程:

    def start_work(self, i):
        self.set_url(i)
        try:
            self.dl_ts(i)
            print(str(i) + ".ts  success")
            sleep(1)
        except urllib.error.URLError as e:
            print(e.reason)
            self.dl_ts(i)
        except socket.timeout as e2:
            print(e2.reason)
            self.dl_ts(i)


if __name__ == '__main__':
    catch_video = CatchVideo()
    socket.setdefaulttimeout(20)# 设置socket层超时时间20秒
    I = 0
    while I < 1563+1:
        # 5个进程并发运行
        p_l = [Process(target=catch_video.start_work, args=(i,)) for i in range(I, I+5)]
        for p in p_l:
            p.start()
        for p in p_l:
            p.join()
        I = I + 5

 

 

这里设置了5个进程同时运行,太多远程主机会拒绝请求。

 

OK,这样就能很快下载了。隔了几天终于想起来还有个电影没看,哈哈 ^_^

 

 

 

 

--结束END--

本文标题: python爬取视频网站m3u8视频,下

本文链接: https://www.lsjlt.com/news/179273.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python爬取视频网站m3u8视频,下
    最近发现一些网站,可以解析各大视频网站的vip。仔细想了想,这也算是爬虫呀,爬的是视频数据。  首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 “一出好戏” 。 分析页面 我用的是chrome浏览器,F12进入查看。选...
    99+
    2023-01-30
    视频 网站 python
  • python爬虫:爬取网站视频
    python爬取百思不得姐网站视频:http://www.budejie.com/video/新建一个py文件,代码如下:#!/usr/bin/python # -*- coding: UTF-8 -*- import urllib,re...
    99+
    2023-01-31
    爬虫 视频 网站
  • Python - 下载视频网站的视频
    import urllib2 print "stand" for i in range(1, 23, 1): url = 'http://newoss.maiziedu.com/yxyh4/pand-%02d.mp4' ...
    99+
    2023-01-31
    视频 网站 Python
  • Python 自动爬取B站视频
    文件名自定义(文件格式为.py),脚本内容: #!/usr/bin/env python #-*-coding:utf-8-*- import requests import random import time def get_js...
    99+
    2023-01-30
    视频 Python
  • ffmpeg网页视频流m3u8 ts怎么实现视频下载
    这篇“ffmpeg网页视频流m3u8 ts怎么实现视频下载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ffmpe...
    99+
    2023-07-02
  • python爬取小视频
    python爬取小视频记录 学习python简单爬虫小程序,记录代码和学习过程 环境信息 python 2.7.12 分析与步骤 要分析网站信息 http://www.budejie.com/video/ 查看网页不同页面的信息...
    99+
    2023-01-31
    小视频 python
  • 利用python爬取m3u8格式视频的具体实现
    目录m3u8原理脚本环境爬取步骤步骤的具体实现python细节处理说明参考代码总结 m3u8原理 当我们在网页播放视频时,网页向服务器发起一个以.m3u8结尾的连接请求,服...
    99+
    2022-11-11
  • PHP获取M3U8视频时长
    m3u8 ⽂件实际上是⼀个播放文件索引地址,通过里面的参数可以找到相应的时长 EXTM3U:这个是M3U8文件必须包含的标签,并且必须在文件的第一行,所有的M3U8文件中必须包含这个标签。 EXT-X...
    99+
    2023-10-01
    php 音视频 开发语言 m3u8时长 视频时长
  • Python采集某网站小视频内容, m3u8内容下载
    前言 大家早好、午好、晚好吖~ 目录标题 前言环境使用:模块使用:模块安装问题:如果安装python第三方模块:安装失败原因: 如何配置pycharm里面的python解释器pych...
    99+
    2023-09-26
    python pycharm 开发语言
  • python怎么爬取视频
    本篇内容介绍了“python怎么爬取视频”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!题目解析的爬取思路1.将所以题目的解析链接爬取出去单独...
    99+
    2023-06-02
  • Python爬虫爬取各大热门短视频平台视频
    1、开发工具 Python3.9 requests库 其他一些Python内置库 pycharm 2、第三方库 安装第三方库 pip install requests 3、实现思路 利用tkinter库实例化一个GUI界面,包含提示框...
    99+
    2023-09-10
    python 爬虫
  • python爬取梨视频生活板块最热视频
    完整代码如下: import requests from lxml import etree import random import os from multiprocess...
    99+
    2022-11-11
  • python爬虫爬网站的视频和图片
    环境:centos6.5 python2.6.6   http://www.budejie.com/( 纯属测试,并无恶意 )网站分析:我们点视频按钮 可以看到url是:http://www.budejie.com/video/接着我们点开...
    99+
    2023-01-31
    爬虫 图片 网站
  • Python爬虫小练习之爬取并分析腾讯视频m3u8格式
    目录普通爬虫正常流程:环境介绍分析网站开始代码导入模块数据请求提取数据遍历保存数据运行代码普通爬虫正常流程: 数据来源分析 发送请求 获取数据 解析...
    99+
    2022-11-12
  • Python爬取某拍短视频
    目录一、抓取目标二、工具使用三、重点学习内容四、项目思路解析五、简易源码分享一、抓取目标 目标网址:美拍视频 二、工具使用 开发环境:win10、python3.7 开发工具:py...
    99+
    2022-11-12
  • python3爬虫(4)各种网站视频下载
    理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够下载下来,然而实际操作的时候也是有一定难度和技术的,这篇文章主要讲述各个网站视频资源如何下载。   B站视频 页面链接: https://www.bilibili.com/ban...
    99+
    2023-01-31
    爬虫 视频下载 网站
  • Python爬虫之m3u8文件里提取小视频的正确姿势
    目录前言1. HLS协议与m3u8文件3. 合成mp4文件4. 完整代码5. 结束语前言   在网上爬取的小视频(.ts格式)打不开怎么搞?使用IDM下载有时候还会出现数据受法律保护,IDM无...
    99+
    2022-06-02
    Python提取m3u8文件小视频 Python m3u8视频
  • Python怎样爬取西瓜视频
    Python怎样爬取西瓜视频,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、写在前面真的,为什么别人发游戏这么多人看,我发了两次了加起来才一百个。算了算了,不整游戏了,反...
    99+
    2023-06-21
  • Python爬虫教你爬取视频内容
            前面介绍了基本的数据爬取,图片爬取的相关案例前面文章也有涉及,关于有些案例网站不能登录的问题,可以再找些别的网站,因为道理既然明白了,其实什么网站都一样,它有反爬机制,自然有应对它的办...
    99+
    2023-09-16
    爬虫 音视频 python
  • python基于tkinter制作m3u8视频下载工具
    目录m3u8地址获取程序代码项目地址这是我为了学习tkinter用python 写的一个下载m3u8视频的小程序,程序使用了多线程下载,下载后自动合并成一个视频文件,方便播放。 目前...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作