python爬取ts文件,合并

爬虫,日志,正则,递归,异常捕捉,线程池
1,准备电影网站

2,分析视频url链接 (起始url,终止url)

3,准备代码,下载至文件(关键)

import requests

import logging
import re

url = 'https://vip2.pp63.org/201903/21/Gp91Gn2m/600kb/hls/'  # 【根据url修改】


def download(name):
    str_name = str(name)
    if len(str_name) == 1:  # 【根据url修改】
        str_name = '00' + str_name
    elif len(str_name) == 2:  # 【根据url修改】
        str_name = '0' + str_name
    print(str_name)
    file_name = "1QIyv1Kg3296" + str_name + '.ts'  # 【根据url修改】
    print(url + file_name)
    try:
        res = requests.get(url=url + file_name, timeout=15)
        content = res.content

        with open(r'C:\Users\admin\Desktop\电影\%s' % file_name, 'wb')as f:
            f.write(content)
            print(file_name + '\x1b[1;30;42m 下载成功 \033[0m')
            num = name // 20
            print(file_name + '下载完成,' + '已下载' + ' %s %% %s' % (name / 11, '>' * num))  # 【假的进度条,能看个大概,根据url修改】

    except Exception as e:
        # 报错提示
        print(file_name + '\x1b[1;30;41m 下载失败 \033[0m')
        print(e)
        name = re.findall('1QIyv1Kg3296(\d+).ts', file_name)[0]  # 【根据url修改】
        print(name + ' 下载失败')

        # 记录日志
        my_log = logging.getLogger('lo')
        my_log.setLevel(logging.DEBUG)
        file = logging.FileHandler('error.log', encoding='utf-8')
        file.setLevel(logging.ERROR)
        my_log_fmt = logging.Formatter('%(asctime)s-%(levelname)s:%(message)s')
        file.setFormatter(my_log_fmt)
        my_log.addHandler(file)
        my_log.error(file_name + ' 下载失败 ')
        my_log.error(e)

        # 重新下载
        download(int(name))  # 如果报错,递归执行一遍


from concurrent.futures import ThreadPoolExecutor  # 线程池

p = ThreadPoolExecutor(8)
for name in range(1, 1101):  # 【根据url修改】
    p.submit(download, name)

# 功能:失败提示,失败重试,失败记录日志,线程池提高并发,超时重试。

4,合并,即可观看

打开cmd切进目录,执行copy /b *.ts video.ts合并速度超快。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,115评论 0 3
  • Jupyter Notebook 利器 入门基础 windows一键安装:3.5.2版本第三方包:windows平...
    Babus阅读 5,813评论 0 1
  • 人到中年,神经脆弱得已经经不起一点波折。午夜十二点一过,我就醒了,再也睡不着了。偶尔的失眠,我就会拿起笔,想写什么...
    碧水蓝天_2a7d阅读 1,391评论 0 0
  • 文/紫玉姑娘 2018-10-20 下午,几乎没什么阳光照耀大地,柔柔的风吹来,就像一双柔软的...
    吾名大霞阅读 1,716评论 0 2
  • 第五单元的主要内容是认识周长,周长的测量与计算长方形与正方形周长的计算方法。这些内容的学习是在学生认识了三...
    燕儿_a41f阅读 1,703评论 0 0