下载CCTV视频并合并成视频文件

本文讲述了如何通过Python脚本配合you-get工具下载B站视频,并利用ffmpeg将视频片段进行拼接,解决视频被切分成多个片段的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有个朋友想下载https://www.cctv.com/网站上的视频,有人推荐了一个硕鼠工具,下载后,官方网站都登录不了,也解析不了cctv的网页,只能自己找找别的办法,找到了万能的b站。
https://www.bilibili.com/video/BV1HT411r7bQ
这个不好用,用谷歌浏览器按下F12,点击Network,然后点击Media,并没有视频的链接,看样子是已经隐藏了。
有人装B提到了you-get这个工具,
https://www.bilibili.com/video/BV1Hc41137uS
https://www.bilibili.com/video/BV1j14y1M7oj
前提是电脑里面有python,然后pip install you-get。
然后打开cmd命令行窗口,输入you-get 加上视频网页地址,
在这里插入图片描述
回车就可以下载了,下载过程比较慢,稍等等吧~可以看到是下载了14个视频文件,原来这个视频被切分成了14块。
看样子还要把这14个视频拼接一下,想起来硕鼠工具有一个视频拼接的功能,试了一下,也不好用····
后来搜到了这个 https://blog.youkuaiyun.com/fly_view/article/details/129793212
前提是下载了ffmpeg~正好我有。
把所有的视频文件切片放到一个文件夹内部,然后把下面程序保存成一个python.py文件。

import os
import datetime,time

def test(path, save_path):
 
    file_names = os.listdir(path)
    if 'file_list.txt' in file_names:
        os.remove(path+'file_list.txt')
    out_file_name = 'output.ts'
    while out_file_name in os.listdir(save_path):
        out_file_name = '新' + out_file_name
    f = open(path+'file_list.txt', 'w+')
    for one in file_names:
        f.write("file '" + one + "'\n")
    f.close()
    print("生成txt文件成功!")
    start = datetime.datetime.now()
    print('开始合成,初始时间为:',datetime.datetime.now())
    ffmpeg_bin_dic = 'C:/ffmpeg-master-latest-win64-gpl/bin/'
    os.system(ffmpeg_bin_dic+'ffmpeg -f concat -safe 0 -i '+path+'file_list.txt'+' -c '+ ' copy ' +save_path+ out_file_name)
 
    print('合成后的当前时间为:',datetime.datetime.now())
    print('合成视频完成!用时:'+str(datetime.datetime.now()-start))
    

if __name__ == "__main__":
    test("D:/ts/","D:/ts/")

注意第一个path是视频文件的路径,第二个是生成视频文件的路径。中间ffmpeg_bin_dic是ffmpeg所在路径。
在cmd命令终端,切换到脚本路径,运行 python python.py,就可以合成完整的视频文件了。
在这里插入图片描述
注意检查一下视频文件的顺序对不对,因为python把视频文件名当做字符串处理,不会按照数字处理,所以1后面是10,而不是2.
不行就按照abcd来给视频片段命名。

<think>好的,用户想用Python抓取央视频网站的源码直接输出。首先,我需要回想一下之前学过的爬虫知识,以及参考提供的引用内容。 根据引用[1]中的例子,用户使用requests库和lxml来抓取视频链接。这说明基本的步骤是发送HTTP请求,获取响应内容,然后解析。不过央视频可能结构更复杂,需要注意是否是动态加载的内容。 接下来,用户提到要获取源码直接输出。可能只需要发送GET请求,然后打印返回的文本。但央视频可能有反爬机制,比如检查User-Agent或者需要登录。所以需要设置合适的请求头,模拟浏览器访问。 引用[3]中提到抓取源视频的方法,可能需要处理动态内容,但用户这里只需要源码,可能不需要渲染JavaScript。不过央视频如果是单页面应用,可能需要用Selenium之类的工具。但用户希望用简单的方法,可能先尝试requests。 另外,需要注意合法性,抓取公开数据且不侵犯版权。央视频是否有API接口?或者查看网页源码中的视频链接是否存在。可能需要分析网页结构,找到真正的视频地址。 步骤可能包括:构造请求头,发送GET请求,处理响应,输出源码。如果遇到动态加载,可能需要用Selenium或者查找隐藏的API。但用户的问题比较简单,可能只需要基本的requests.get。 需要提醒用户遵守网站规则,避免频繁请求。同时,检查是否有反爬措施,比如验证码或IP封锁。最后,确保代码示例正确,包括异常处理,比如添加try-except块,处理请求错误。</think>要抓取央视频网站源码,需先分析其网页加载方式模拟浏览器请求。根据引用[1][3]的爬取逻辑,可采用以下方法实现: ```python import requests # 设置浏览器指纹头 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36", "Referer": "https://www.yangshipin.cn/" } def get_yangshipin_source(url): try: response = requests.get(url=url, headers=headers, timeout=10) response.encoding = 'utf-8' # 指定编码格式 return response.text except Exception as e: print(f"请求异常: {str(e)}") return None # 示例使用 if __name__ == "__main__": target_url = "https://www.yangshipin.cn/#/video/home" # 央视频首页 source_code = get_yangshipin_source(target_url) if source_code: print(source_code) ``` **注意事项**: 1. 需实时更新请求头中的`User-Agent`和`Referer`字段值 2. 央视频采用混合渲染技术,部分内容需执行JavaScript才能获取[^3] 3. 若返回空数据,可能需要添加`Cookie`认证信息 4. 视频数据通常存储在`<script>`标签或异步接口中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值