python爬虫--B站视频+歌曲合并(代码展示)

I want my tears back,

I want my tears back now.

愿偿少年泪,犹趁未老时。


需要在代码运行前先下载性对应安装包:(建议使用国内源,比较快)

pip install lxml -i http://mirrors.aliyun.com/pypi/simple/

pip install xlwt -i https://mirrors.aliyun.com/pypi/simple/

pip install lxml -i https://mirrors.aliyun.com/pypi/simple/

pip install html5lib -i https://mirrors.aliyun.com/pypi/simple/

pip install pyinstaller -i https://mirrors.aliyun.com/pypi/simple/

pip install pillow -i https://mirrors.aliyun.com/pypi/simple/

pip install moviepy -i https://mirrors.aliyun.com/pypi/simple/

pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

pip install flask -i https://mirrors.aliyun.com/pypi/simple/

import json
from moviepy.editor import *
import requests
from bs4 import BeautifulSoup

url = 'https://www.bilibili.com/video/BV1tT421S7g7/?spm_id_from=333.337.search-card.all.click&vd_source=7142b5b1eab836288f62c1ffe55163e4'
headers = {
    'Host': 'www.bilibili.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0',
    'Referer': 'https://passport.bilibili.com/',
    'Cookie': 'buvid3=9DE436D9-2F2E-F7BD-C79E-F03546217E5128133infoc; b_nut=1716538728; _uuid=16156D410-688B-6CBE-27510-F94356CF11F428938infoc; buvid_fp=073b7e7c7ee6268308cd8df7dde9d9f5; buvid4=024E9071-FEC3-079F-519D-9C53884AA52032794-024052408-lqLrmzovPDlglV9GeRbtSA%3D%3D; CURRENT_FNVAL=4048; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTc1NzM5MDQsImlhdCI6MTcxNzMxNDY0NCwicGx0IjotMX0.YJf4WsQDrwlkwCXa50er8sL8ZCgepO0xi6XVk9xTZaQ; bili_ticket_expires=1717573844; rpdid=|(u)YJY~~lmR0Ju~u~ulkmRm; bsource=search_baidu; b_lsid=10F310C101C_18FD7AAE929; enable_web_push=DISABLE; header_theme_version=CLOSE; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; home_feed_column=5; browser_resolution=1536-748; sid=84lnh9il; csrf_state=1f65a6ae3aaed692039754629a06140e; SESSDATA=8471d048%2C1732866704%2Cbe8ec%2A62CjDel1hgglJnXIR97ezgOJjSIgfHXzXQZpq2w3q2J22IQ2R16oyVM8foK6IQ474so3QSVi1jVG40TTZQMDlzdGtQTzFlakZ5V2dtbkFsUENzaXp3aS1SR3V6RDBFd2xzdnRwaGs0Uk5QSHlUUWFnbmY0ei11bHNCa3A1OXhheko5UzBIVVprdFJBIIEC; bili_jct=c91d806419252514458d050c3db4b3fb; DedeUserID=482083730; DedeUserID__ckMd5=5ae676e59150c0ae'
}
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text,'html.parser')
script_list = soup.find_all('script')
temp = str(script_list[3]).replace('<script>window.__playinfo__=','').replace('</script>','')
# 使用json.loads()方法将temp字符串解析为python对象
# print(temp)
video_info = json.loads(temp)
video_url = video_info['data']['dash']['video'][1]['baseUrl']
audio_url = video_info['data']['dash']['audio'][2]['baseUrl']
dirname = 'B站白鸽'
if not os.path.exists(dirname):
    os.mkdir(dirname)
with open(f'{dirname}/希林娜依·高-白鸽(新版).mp4','wb') as fv:
    video_content = requests.get(video_url).content
    fv.write(video_content)
with open(f'{dirname}/希林娜依·高-白鸽(新版).mp3','wb') as fv:
    audio_content = requests.get(audio_url).content
    fv.write(audio_content)
video_path = f'{dirname}/希林娜依·高-白鸽(新版).mp4'
audio_path = f'{dirname}/希林娜依·高-白鸽(新版).mp3'
video = VideoFileClip(video_path)
audio = AudioFileClip(audio_path)
video = video.set_audio(audio)
output_path = f'{dirname}/希林娜依·高-白鸽(合并版).mp4'
video.write_videofile(output_path, codec='libx264', audio_codec='aac')

展示一下结果叭!

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值