python爬取某网站视频(简易实现易上手)

需要用到的库

import os
import requests
from fake_useragent import UserAgent
import json
import re
import pprint

以及需要用到合成音频和视频的一个软件FFmpeg

FFmpeg下载参考教程

然后到我们的代码实现

import os
import requests
from fake_useragent import UserAgent
import json
import re
import pprint

# 只下载 合成视频另外利用FFmpeg
ua = UserAgent()
#因为版权问题没有声明 这里是b#站视频url
url = input("请输入下载视频的网址url")

header = {
    'user-agent': ua.chrome,
    'cookie': "buvid3=CFF66230-3E56-A189-9247-B05616FE9B0788580infoc; b_nut=1669435988; i-wanna-go-back=-1; b_lsid=FBD83BF6_184B2239B37; _uuid=B2B2A2F6-105110-88B1-848B-105D5C196310CA88800infoc; buvid4=026A855C-18D0-20F5-5FA7-119D934A2B0768759-022012508-bQg6aOCdw/QjUicgU95kvA%3D%3D; fingerprint=a877a9d4e7335ad9b9271f6b39fa9c8e; buvid_fp_plain=undefined; SESSDATA=867012e8%2C1684988005%2Cd8787%2Ab2; bili_jct=921f6a9b7d03a90d7fc89748aea4f40d; DedeUserID=507703146; DedeUserID__ckMd5=0a06cbbc99bc0cca; buvid_fp=91c4744a50648918c27547d565b6689d; bp_video_offset_507703146=732702986882515100; CURRENT_FNVAL=4048; sid=7sbhfwlu; theme_style=light; rpdid=|(m)mJ~kYmk0J'uYYmRJY|Yu; nostalgia_conf=-1; innersign=0; b_ut=5; PVID=1",
    'sec-ch-ua': '";Not A Brand";v="99", "Chromium";v="94"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': 'Windows',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'referer': 'https://space.bilibili.com/229733301/video'
}
response = requests.get(url=url, headers=header, timeout=3)
# 找到脚本里面视频和音频的url
html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]
# 转换成json数据
json_data = json.loads(html_data)
# pprint.pprint(json_data)
# 分别获取音频和视频数据
video_url = json_data['data']['dash']['video'][0]['base_url']
audio_url = json_data['data']['dash']['audio'][0]['base_url']
# print(response.text)

# 找到页面里的标题
title = re.findall('<h1 title="(.*?)" class="video-title tit">', response.text)[0]

video_info = [title, video_url, audio_url]
print("正在下载视频:", title)
# print(video_url)
# print(audio_url)

# 获取二进制数据
# 音频
audio_content = requests.get(url=audio_url, headers=header).content
# 视频
video_content = requests.get(url=video_url, headers=header).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("下载完成")

url就是某站视频上方那一段网址 复制输入进去就行了 最后下载得到两个音频和视频文件

这里我们利用ffmpeg合成

首先win+r 输入cmd 打开命令提示符 先cd到当前文件夹 然后输入代码ffmpeg-i {title}.mp4 -i {title}.mp3 {title}output.mp4 合成

title是文件名 最好的{title}output是输出的文件名 可以自己随意更改。

最后视频就合成好了 可以正常观看

ffmpeg软件功能其实很多 可以继续学习 有更多的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写不出来就跑路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值