importos, shutilimporturllib.request, urllib.error, requests#打开并读取网页内容

defgetUrlData(url):try:

urlData= urllib.request.urlopen(url, timeout=20) #.read().decode('utf-8', 'ignore')

returnurlDataexceptException as err:print(f'err getUrlData({url})\n', err)return -1

#下载文件-urllib.request

defgetDown_urllib(url, file_path):try:

urllib.request.urlretrieve(url, filename=file_path)returnTrueexcepturllib.error.URLError as e:#hasttr(e, 'code'),判断e 是否有.code属性,因为不确定是不是HTTPError错误,URLError包含HTTPError,但是HTTPError以外的错误是不返回错误码(状态码)的

if hasattr(e, 'code'):print(e.code) #打印服务器返回的错误码(状态码),如403,404,501之类的

elif hasattr(e, 'reason'):print(e.reason) #打印错误原因

defgetVideo_urllib(url_m3u8, path, videoName):print('begin run ~~\n')#urlData = getUrlData(url_m3u8).readlines()

urlData =getUrlData(url_m3u8)

num=0

tempName_video= os.path.join(path, f'{videoName}.ts') #f'{}' 相当于'{}'.format() 或 '%s'%videoName

#print(urlData)

for line inurlData:#解码,由于是直接使用了所抓取的链接内容,所以需要按行解码,如果提前解码则不能使用直接进行for循环,会报错

#改用上面的readlines()或readline()也可以,但更繁琐些,同样需要按行解码,效率更低

url_ts = line.decode('utf-8')

tempName_ts= os.path.join(path, f'{num}.ts') #f'{}' 相当于'{}'.format()

if not '.ts' inurl_ts:continue

else:if not url_ts.startswith('http'): #判断字符串是否以'http'开头,如果不是则说明url链接不完整,需要拼接

#拼接ts流视频的url

url_ts = url_m3u8.replace(url_m3u8.split('/')[-1], url_ts)print(url_ts)

getDown_urllib(url_ts, tempName_ts)#下载视频流

if num ==0:#重命名,已存在则自动覆盖

shutil.move(tempName_ts, tempName_video)

num+= 1

continuecmd= f'copy /b {tempName_video}+{tempName_ts} {tempName_video}'res=os.system(cmd)if res ==0:

os.system(f'del {tempName_ts}')if num == 20: #限制下载的ts流个数,这个视频挺长有四百多个.ts文件,所以限制一下

breaknum+= 1

continue

print(f'Wrong, copy {num}.ts-->{videoName}.ts failure')returnFalse

os.system(f'del {path}/*.ts') #调用windows命令行(即cmd)工具,运行命令

filename = os.path.join(path, f'{videoName}.mp4')

shutil.move(tempName_video, filename)print(f'{videoName}.mp4 finish down!')if __name__ == '__main__':

url_m3u8= 'http://wscdn.alhls.xiaoka.tv/201886/2f5/75a/HoHdTc1LjUaBjZbJ/index.m3u8'path= r'E:\pydevworkspaces\project\product\epgw\videos'videoName= url_m3u8.split('/')[-2]

getVideo_urllib(url_m3u8, path, videoName)

python合并大量ts文件_Python3 根据m3u8下载视频,批量下载ts文件并且合并相关推荐

  1. python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载

    每天一点点,记录学习 python 爬取菜鸟教程python100题 近期爬虫项目,看完请点赞哦: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:pytho ...

  2. Python爬取m3u8格式视频并解密ts文件合并转为mp4格式

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

  3. python批量下载网页文件夹_Python抓取网页批量下载文件方法初探(正则表达式+BeautifulSoup) (转)...

    最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法 ...

  4. python读取文件夹下所有txt_python如何批量读取txt文件

    python批量读取txt文件的方法:首先导入系统模块:然后将文件夹路径更改为需要批量读取的txt文件存放的路径:再调用系统模块得到该文件夹下的所有文件名称:最后遍历文件夹,读取txt文件. 如果文件 ...

  5. 用Python下载视频,保存至文件的demo

    def download_video(url):try:print('准备下载视频:'+url)response=requests.get(url,headers=headers)data=respo ...

  6. Python爬虫:给我一个链接,虎牙视频随便下载

    1. 爬取的原理 我们来到虎牙视频主界面,链接为:虎牙视频主界面 然后随便点击一下某个视频的发布者,来到这个发布者的主界面,点击到视频,如下: 我们可以看到这个界面下有许多视频可以观看,那么怎样下载呢 ...

  7. 批量下载sra文件linux,Linux下从NCBI批量下载SRA数据的sra和aspera方法

    Minus_yao  2018.04.25  yaoguocai_cool@163.com #从NCBI下载SRA数据,最近在疯狂下载宏基因组数据,试着解决一下这个问题~ 方法一: 软件准备: 使用n ...

  8. 实战python网络爬虫脚本之家_python爬虫实战,批量下载网站视频

    pip3 install requests 测试样例 加上序言总共有16个视频,我们用python爬虫技术批量下载到本地. https://learning.dcloud.io/#/?vid=0 ​ ...

  9. python自动批量下载_Python批量下载鼠标样式,自动化一条龙处理详解

    前情提要 最近发现一款特别好看的壁纸软件,其中提供了鼠标样式,感觉很好看!很精致!心想肯定是请求下载然后启用鼠标样式, 那么发送请求,那不就可以用Python爬虫了吗? 其中鼠标样式下图: 爬虫环境 ...

  10. 更新!Python文献超级搜索工具,可关键词搜索并批量下载!

    文献搜索对于广大学子来说真的是个麻烦事,如果你的学校购买的论文下载权限不够多,或者不在校园内,那就很头痛了.幸好,我们有Python制作的这个论文搜索工具,简化了我们学习的复杂性 2020-05-28 ...

最新文章

  1. SAP WM初阶之移动类型设置里的Additional Data?
  2. 帮你理解特征向量的几何意义?
  3. redhat 7 oracle 11,redhat7 搭建oracle 11g RAC 问题与处理
  4. leetcode刷题笔记(3)(python)
  5. echarts 柱状图 横坐标文字纵向展示(超出显示...)
  6. 【ReactJs学习笔记总目录】
  7. RK系列开发板音频驱动适配指南(二)
  8. day23 三升序列
  9. HIT信息安全概论复习:1~10
  10. unity产生阴影的几种方式
  11. 10个最佳PHP URL缩短器脚本
  12. 浅谈“高内聚,低耦合”
  13. EMC设计的四大技巧
  14. 互联网采集-互联网采集软件-互联网采集数据信息采集工具免费
  15. 2021最新 阿里云购买学生机服务器搭建部署一条龙服务
  16. 推荐系统第3、4周笔记
  17. 边缘计算网关已经量产的哪些网事
  18. 厚物科技PXIe/PXI一体化测控平台HW-1043d
  19. 用Python爬虫抓取免费代理IP
  20. 神策数据新 DEMO 上线,助力零售行业数据分析

热门文章

  1. 北大慕课(郭炜):程序设计与算法(一)编程题答案(全)
  2. 教育部更新学科目录!考研(与在读)的同学都需要知道!
  3. 【常用配置】——WPS文字常用快捷键大全【史上最全面】转
  4. 工序(过程)能力指数
  5. HFSS - 侧馈矩形微带天线设计与仿真
  6. 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
  7. MATLAB绘制统计折线图
  8. java计算机毕业设计教务排课系统源码+mysql数据库+系统+lw文档+部署
  9. 单侧CPK的计算方式
  10. BT.2020 新一代超高清UHD视频制作与显示系统标准