Python requests 下载 m3u8 格式 视频

最近爬取一个视频网站,遇到 m3u8 格式的视频需要下载。

抓包分析,视频文件是多个 ts 文件,什么是 ts文件,请去百度吧:

附图:抓包分析过程

直接把 ts文件请求下来,然后合并 ts文件,如果想把 ts文件转换 MP4 格式,请自行百度吧。

完整下载代码:

#coding=utf-8

import requests

import re

import time

from bs4 import BeautifulSoup

import os

session = requests.session()

def spider():

url = 'http://xueyuan.91yunxiao.com/videoLesson/play/4028e4115fc893fb015fecfc56240b66.html'

headers = {

"Host":"xueyuan.91yunxiao.com",

"Connection":"keep-alive",

"Upgrade-Insecure-Requests":"1",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",

"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",

"Referer":"http://xueyuan.91yunxiao.com/videoLesson/detail/4028e4115fc893fb015fecfafe200b63.html",

"Accept-Encoding":"gzip, deflate",

"Accept-Language":"zh-CN,zh;q=0.9",

"Cookie":"UM_distinctid=163cae8de9816e-0d08a36800162a-454c092b-ff000-163cae8de99141; _qddaz=QD.n4xqjl.egbt1i.ji0ex7zv; pgv_pvi=6411171840; SERVERID=s50; JSESSIONID=5D1C6375394E84E931FBD1C774876563; CNZZDATA1261509255=2100416221-1528114457-%7C1528207774",

}

try:

result = session.get(url=url,headers=headers).content

except:

result = session.get(url=url,headers=headers).content

result_replace = str(result).replace('\n','')

print result_replace

item_url = re.findall('',result_replace)[0].replace('1.m3u8','')

print item_url

# for page in range(1,11):

headers2 = {

"Host":"data.xueyuan.91yunxiao.com",

"Connection":"keep-alive",

"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36",

"X-Requested-With":"ShockwaveFlash/29.0.0.171",

"Accept":"*/*",

"Referer":"http://xueyuan.91yunxiao.com/videoLesson/play/4028e4115fc893fb015fecf8e4d60b61.html",

"Accept-Encoding":"gzip, deflate",

"Accept-Language":"zh-CN,zh;q=0.9",

"Cookie":"UM_distinctid=163cae8de9816e-0d08a36800162a-454c092b-ff000-163cae8de99141; _qddaz=QD.n4xqjl.egbt1i.ji0ex7zv;

pgv_pvi=6411171840; SERVERID=s4222",

}

for page in range(0,16):

if page < 10:

page_str = "0" + str(page)

else:

page_str = str(page)

"http://data.xueyuan.91yunxiao.com/convert/m3u8/2017/11/24/ed/ededf4dc7471a05550cc521196d28ebc/file006.ts"

item_url1 = item_url + "file0" + str(page_str) + ".ts"

print item_url1

dir_path = "E:/1"

file_name = page_str + ".ts"

response = session.get(url=item_url1,headers=headers2)

if response.status_code == 200:

if not os.path.exists(dir_path):

os.makedirs(dir_path)

total_path = dir_path + '/' + file_name

if len(response.content) == int(response.headers['Content-Length']):

# print total_path

with open(total_path, 'wb') as f:

for chunk in response.iter_content(1024):

f.write(chunk)

f.close()

spider()

python下载大文件mp4_Python 下载 m3u8 格式视频相关推荐

  1. python下载大文件mp4_python下载mp4 同步和异步下载支持断点续下

    Range 用于请求头中,指定第一个字节的位置和最后一个字节的位置,一般格式: Range:(unit=first byte pos)-[last byte pos] Range 头部的格式有以下几种 ...

  2. Linux命令行下载大文件,下载Onedrive文件

    Linux命令行下载大文件,下载Onedrive文件 做深度学习实验时,经常会遇到下载数据集,下载到本地又上传到Linux服务器上,这时用rz上传会很慢,在网上找到一些方法,用curl下载One-dr ...

  3. python下载大文件mp4_Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件.我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放 ...

  4. python下载大文件mp4_python 实现视频流下载保存MP4的方法

    # -*- coding:utf-8 -*- import sys import os from glob import glob import requests reload(sys) sys.se ...

  5. php 远程下载大文件,php下载远程文件(支持断点续传,支持超大文件)

    断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围 例如1个文本文件的字节为1000, 第一次请求Range: bytes=0-500 第二次请求Range: bytes= ...

  6. python下载大文件mp4_python合并大量ts文件成mp4格式(ps:上限是450,亲测)

    原博文 2018-08-22 17:34 − 1 import os 2 #exec_str = r'copy /b ts/c9645620628078.ts+ts/c9645620628079.ts ...

  7. python多线程下载视频_python 实现多线程下载m3u8格式视频并使用fmmpeg合并

    电影之类的长视频好像都用m3u8格式了,这就导致了多线程下载视频的意义不是很大,都是短视频,线不线程就没什么意义了嘛. 我们知道,m3u8的链接会下载一个文档,相当长,半小时的视频,应该有接近千行ts ...

  8. python下载m3u8视频_使用python 下载m3u8格式视频,并使用ffmpeg 合成视频

    使用python 下载m3u8格式视频,并合成 # -*- coding: utf-8 -*- # Created on 2018/07/26 import os import requests &q ...

  9. Python编程:封装M3U8格式视频下载类

    一.前言 m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8. m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址, ...

最新文章

  1. HtmlAgilityPack 处理通配的contains
  2. 【金三银四】java多线程并发编程pdf
  3. sqlserver 性能问题
  4. Python练习题:---给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {}[]() 是否成对出现
  5. 计算机组装与维护补考论文,计算机组装与维护期末论文
  6. 2017/Province_C_C++_A/7/正则问题
  7. 10投屏后没有声音_钉钉怎么投屏,秒懂投屏详解
  8. Gartner预测2017/18年十大物联网技术
  9. docker 安装 FastDFS
  10. AD域控Exchange邮箱(二)——卸载ExchangeServer2010报错:“有些控件无效 - 请指定要卸载的现有服务器” 解决方法
  11. 单招软件职业技能测试,高职单招职业技能测试,这些知识你都了解吗?
  12. 阿里云产品介绍(一):云服务器ECS
  13. word方框(□)中打钩(√)的3种方法
  14. 分享华为鲲鹏(ARM)镜像站地址
  15. 【ARTS】01_07_左耳听风-20181224~1230
  16. kafka错误代码解释
  17. 如何知道计算机是否支持64位,使用鲁大师怎么查看电脑CPU是否支持64位系统?...
  18. 计算机地图制图的生产流程包括,2012注册测绘师综合:计算机地图制图生产工艺...
  19. 计算机为什么会出现网络用户,电脑登陆QQ经常提示异地登陆是怎么回事?
  20. 483g路由器连接服务器无响应,TP-LINK企业路由器设置 TP-LINK TL-R483 Wan口设置图文教程...

热门文章

  1. 【POJ2411】Mondriaan's Dream
  2. maven(11)-聚合多模块
  3. linux下简易搭建svnserver
  4. 1.6.jquerymobile--列表
  5. C#开源项目一览表[转](包含国内和国外)
  6. 2018年广西计算机一级,关于2018年上半年广西壮族自治区全国计算机等级考试报名工作的通知...
  7. php定义一个学生类_3分钟短文 | PHP获取函数参数名,和类定义的常量,都要反射...
  8. maven私服的使用
  9. HttpURLConnection的使用步骤
  10. int与string互转