python小程序——视频篇(中)

简介: python小程序——视频篇(中)

 A站

import requests
import re
import os
import zipfile
url = input('请输入视频网址:')
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
}
response = requests.get(url=url,headers=headers)
#print(response.text)
                                            #取第一行,       替换字符
m3u8_url = re.findall('"backupUrl(.*?)"]',response.text)[0].replace('\\":[\\"','').replace('\\','')
title = re.findall('<title >(.*?)- AcFun弹幕视频网 - 认真你就输啦 \(\?\ω\?\)ノ- \( ゜- ゜\)つロ</title>',response.text)[0]
#print(m3u8_url)
#os自动创建文件夹
filename = f'{title}\\'
if not os.path.exists(filename):
    os.mkdir(filename)
m3u8_data = requests.get(url=m3u8_url,headers=headers).text
m3u8_data = re.sub('#EXTM3U','',m3u8_data)
m3u8_data = re.sub('#EXT-X-VERSION:\d','',m3u8_data)
m3u8_data = re.sub('#EXT-X-TARGETDURATION:\d','',m3u8_data)
m3u8_data = re.sub('#EXT-X-MEDIA-SEQUENCE:\d','',m3u8_data)
m3u8_data = re.sub('#EXTINF:\d\.\d+,','',m3u8_data)
m3u8_data = re.sub('#EXT-X-ENDLIST','',m3u8_data).split()
#print(m3u8_data)
for index in m3u8_data:
    ts_url = 'https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/hls/' + index
    ts_name = ts_url.split('.')[3]
                                                         #二进制
    ts_content = requests.get(url=ts_url,headers=headers).content
    with open(filename + ts_name + '.ts',mode='wb') as f:
        f.write(ts_content)
        print(ts_name)
print('视频片段下载完成')
print('开始合并......')
files = os.listdir(filename)
print(files)
with zipfile.ZipFile(filename + title + '.mp4',mode='w') as f:
    for i in files:
        file = filename + i
        f.write(file)
        os.remove(file)
print('爬取完成')

image.gif

B站(音,视频未合成)

import json
import re
import subprocess
import requests
# 访问网站
def get_response(html_url):
    # 出现403加防盗链referer
    headers = {
        'referer': 'https://www.bilibili.com/video/BV1TF411w7vv?spm_id_from=333.337.search-card.all.click&vd_source=415a9fdfbb14115b672b4063903571a0',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)
    return response
# 获取信息
def get_video_info(html_url):
    response = get_response(html_url=html_url)
    # print(response.text)
    # 提取视频标题
    title = re.findall('<h1 title="(.*?)" class="video-title tit">', response.text)[0]
    html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]
    # print(title)
    # print(html_data)
    # pprint.pprint(html_data)
    json_data = json.loads(html_data)
    # 根据冒号左边内容,提取右边内容,键取对值
    audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
    video_url = json_data['data']['dash']['video'][0]['baseUrl']
    video_info = [title, audio_url, video_url]
    # pprint.pprint(json_data)
    # print(audio_url)
    # print(video_url)
    return video_info
# 保存数据
def save(title, audio_url, video_url):
    audio_content = get_response(html_url=audio_url).content
    video_content = get_response(html_url=video_url).content
    with open(title + '.mp3', mode='wb') as f:
        f.write(audio_content)
    with open(title + '.mp4', mode='wb') as f:
        f.write(video_content)
    print(title, '保存成功')
# def merge_data(vide_name):
#     print('视频开始合成', vide_name)
#     cmd = f"ffmpeg -i {vide_name}.mp4 -i {vide_name}.mp3 -c:a aac -strict experimental {vide_name}output.mp4"
#     #print(cmd)
#     subprocess.run(cmd, shell=True)
#     print('视频合成完毕', vide_name)
def main(bv_id):
    url = f'https://www.bilibili.com/video/{bv_id}'
    video_info = get_video_info(url)
    save(video_info[0], video_info[1], video_info[2])
    #merge_data(video_info[0])
keyword = input('请输入要下载的视频BV号:')
main(keyword)
# url = 'https://www.bilibili.com/video/BV1TF411w7vv'
# video_info = get_video_info(url)
# print(video_info)

image.gif


相关文章
|
5月前
|
Web App开发 安全 数据安全/隐私保护
利用Python+Requests实现抖音无水印视频下载
利用Python+Requests实现抖音无水印视频下载
|
5月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
2月前
|
数据采集 自然语言处理 数据可视化
Python爬取B站视频评论区情感分析:从数据采集到价值挖掘
B站作为年轻人聚集地,评论蕴含丰富情感与趋势。本文详解如何用Python爬取评论,结合SnowNLP与jieba进行中文情感分析,并通过可视化挖掘用户情绪、消费意愿与内容反馈,助力精准运营与决策。
468 0
|
3月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
6月前
|
数据采集 机器学习/深度学习 编解码
从零复现Google Veo 3:从数据预处理到视频生成的完整Python代码实现指南
本文详细介绍了一个简化版 Veo 3 文本到视频生成模型的构建过程。首先进行了数据预处理,涵盖了去重、不安全内容过滤、质量合规性检查以及数据标注等环节。
408 5
从零复现Google Veo 3:从数据预处理到视频生成的完整Python代码实现指南
|
5月前
|
API 数据安全/隐私保护 Python
小红书批量发布协议, 抖音自动批量发布软件脚本,笔记作品视频自动发布工具【python】
这个工具框架包含了小红书和抖音的批量发布功能,支持图片和视频处理、定时发布等功能
|
5月前
|
Web App开发 数据安全/隐私保护 Python
快手批量发布作品工具,自动上传视频发布软件,python实现自动脚本
这个脚本实现了快手批量上传视频的功能,包含登录、上传视频、添加描述和发布等完整流程
|
5月前
|
数据安全/隐私保护 Python
快手自动上传视频脚本,图文视频批量发布工具,快手批量发布作品软件【python】
快手批量上传工具提供了完整的视频和图文上传功能,包含登录验证、文件上传、标题设置
|
5月前
|
Web App开发 数据安全/隐私保护 Python
抖音快手小红书哔哩哔哩,批量发布作品笔记视频工具,自动发布作品上传笔记视频【python】
这个工具实现了四大平台的视频批量上传功能,包含完整的异常处理和日志记录。使用时需要配置
|
5月前
|
JSON API 数据安全/隐私保护
批量上传发布视频的软件,小红书抖音快手哔哩哔哩,自动发布上传作品工具【python】
这个项目包含完整的视频批量上传功能,支持多个平台,包含视频处理、配置管理和错误处理等功能

热门文章

最新文章

推荐镜像

更多