首页 > 编程语言 >python爬取电影

python爬取电影

时间:2023-01-04 21:36:46浏览次数:64  
标签:pckpath python 电影 ts ret 爬取 url print os

我们现在很多视频网站的电影都是由很多ts文件片段组成的,要想下载电影,就需要把这些ts文件片段全部下载下来, 然后合成一 部完整的电影

这个程序配置好以下三个地方就可以下载这类电影

url

 

 preurl

 

 

 packageName 就是我们保存ts文件片段和最终文件的文件夹名称

 

import requests
import re
import os
# copy /b  *.ts terget.ts
def get_ts(url):
    ret = requests.get(url)
    # print(ret.status_code)
    # print(ret.text)
    tsList=re.findall("[\w.]+\.ts",ret.text)
    print(tsList)
    return tsList

def download_ts(preUrl,tslist,packageName):
    pckpath = os.path.join(os.path.dirname(os.path.abspath(__file__)),packageName)
    print("check if exist pckpath:",pckpath)
    if not os.path.exists(pckpath):
        os.makedirs(pckpath)
    for u in tslist:
        tsUrl = preUrl + u
        ret = requests.get(tsUrl)
        if ret.status_code != 200:
            print("download {} failed {}".format(tsUrl,ret.status_code))
            return False
        else:
            with open("{}\{}".format(pckpath,u),"wb") as f:
                f.write(ret.content)
                print("download {} successfully".format(u))
    else:
        print("download all ts passed")
        return pckpath

def ingredient_ts(tsfolder,targetTs):
    cmd = "copy /b  {}\\*.ts {}\\{}.ts".format(tsfolder,tsfolder,targetTs)
    print("generate ts file by cmd:{}".format(cmd))
    ret=os.system(cmd)
    if ret!=0:
        print("generate ts file failed")
    else:
        print("generate ts file passed")

def main(url,package,preurl):
    tslist = get_ts(url)
    path = download_ts(preurl,tslist,package)
    ingredient_ts(path,package)

if __name__ == '__main__':
    url = "https://m3u8i.vodfile.m1905.com/202301052101/c64bf08f04c027c769af11314f3b9561/movie/2016/08/03/m20160803HSJEQAE1HXNRYVYU/6E338B8E258305701B35BF2AC.m3u8"
    packageName = "叶问2:宗师传奇 Ip Man 2" #存放ts的folder name
    preurl = "https://m3u8i.vodfile.m1905.com/202301052101/c64bf08f04c027c769af11314f3b9561/movie/2016/08/03/m20160803HSJEQAE1HXNRYVYU/" #ts文件url的前缀
    packageName = packageName.replace(" ","")
    main(url,packageName,preurl)

 

 

标签:pckpath,python,电影,ts,ret,爬取,url,print,os
From: https://www.cnblogs.com/pfeiliu/p/17026041.html

相关文章

  • Python开发一个csv比较功能相关知识点汇总及demo
    Python2.7csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二次时,内容为空iteratorAnobjectrepresentingastr......
  • SICP:符号求导、集合表示和Huffman树(Python实现)
    绪论到目前为止,我们已经使用过的所有复合数据,最终都是从数值出发构造起来的(比如我们在上一篇博客《SICP2.2:层次性数据和闭包性质(Python实现)》所介绍的链表和树就基于......
  • python模块(module)
    目录模块化(module)程序设计理念模块和包概念的进化史标准库模块(standardlibrary)为什么需要模块化编程模块化编程的流模块的API和功能描述要点模块的创建和测试代码模......
  • Python:numpy模块最详细的教程
    一、numpy简介numpy官方文档:https://docs.scipy.org/doc/numpy/reference/?v=20190307135750numpy是Python的一种开源的数值计算扩展库。这种库可用来存储和处理大型nump......
  • python3实现字符串的全排列的方法(无重复字符)两种解决方法
    抛出问题求任意一个字符串的全排列组合,例如a='123',输出123,132,213,231,312,321。(暂时假定字符串没有重复)解决方案目前有两种解决的方法方法一:defstr_sort(s=''):if......
  • python中可以处理word文档的模块:docx模块
    一.docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处......
  • 5分钟快速掌握 Python 定时任务框架
    APScheduler简介在实际开发中我们经常会碰上一些重复性或周期性的任务,比如像每天定时爬取某个网站的数据、一定周期定时运行代码训练模型等,类似这类的任务通常需要我们手......
  • Python网络编程之TCP 客户端程序开发
    一、开发TCP客户端程序开发步骤回顾创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字二、socket类的介绍导入socket模块 importsocket......
  • python脚本调用CANoe COM Server接口
    《CANoe开发入门到精通》源码:#-----------------------------------------------------------------------------#Example:TestFeatureSetviaPython##This......
  • (15)Python识别文字,tesseract包
    使用python提供的tesseract包识别图片中的文字,但效果一般我的是在arch中实现的文章目录​​1、安装tesseract和英文和中文语言包​​​​2、安装必要的第三方库​​​​3、......