python爬虫根据视频地址爬取单一视频

2023-02-26  本文已影响0人  DD丿

import os

import requests

"""

下载M3U8文件里的所有片段"""

def download(url):

    download_path= os.getcwd() + "\download"

    if not os.path.exists(download_path):

        os.mkdir(download_path)

    all_content= requests.get(url).text# 获取M3U8的文件内容

    file_line= all_content.split("\r\n")  # 读取文件里的每一行

    # 通过判断文件头来确定是否是M3U8文件

    # if file_line[0] != "#EXTmp4":

    #    raise BaseException(u"非M3U8的链接")

# else:

    unknow= True  # 用来判断是否找到了下载的地址

    for index, linein enumerate(file_line):

        if "EXTINF" in line:

            unknow= False

            # 拼出ts片段的URL

            pd_url= file_line[index+ 1]

            res= requests.get(pd_url)

            # c_fule_name = str(index)+ '.ts'

            c_fule_name= "%(index)02d" % {'index': index} + '.ts'

            with open(download_path+ "\\" + c_fule_name, 'ab') as f:

                f.write(res.content)

                f.flush()

    if unknow:

        raise BaseException("未找到对应的下载链接")

    else:

        print("下载完成")

# 合并的时候名字要有规律,从前往后排

def merge_file(path):

    os.chdir(path)

    os.system("copy /b * new.mp4")

if __name__== '__main__':

    download(

        "https://vd2.bdstatic.com/mda-pa3e8zh51t7y2db7/sc/cae_h264/1672899441559507828/mda-pa3e8zh51t7y2db7.mp4?v_from_s=hkapp-haokan-nanjing&auth_key=1676274138-0-0-46066e672de1f107f328c1b3119a8ab0&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=0738510073&vid=11362852989718343440&abtest=&klogid=0738510073")

    merge_file(os.getcwd() + "\download")

上一篇下一篇

猜你喜欢

热点阅读