豆瓣电影TOP榜视频下载工具
import requests
import os
import json
from moviepy.editor import VideoFileClip, AudioFileClip
from bs4 import BeautifulSoup
if __name__ == "__main__":
# 豆瓣电影 TOP 榜 API 接口
url = 'https://movie.douban.com/j/chart/top_list'
param = {
'type': '24',
'interval_id': '100 % 3A90',
'action': '',
'start': '0',
'limit': '10',
}
headers = {
'User-Agent': 'Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 99.0.4844.74 Safari / 537.36Edg / 99.0.1150.55'
}
response = requests.get(url=url, params=param, headers=headers)
# 获取 TOP 榜数据
list_data = response.json()
# 获取视频网页内容
video_url = 'https://movie.douban.com/subject/35053710/' # 替换为具体的视频网页链接
res = requests.get(video_url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
# 定位页面的标题,当成文件保存名称
title_element = soup.find('h2', class_='title')
if title_element:
title = title_element.string
else:
title = 'Untitled'
script_all = soup.find_all('script')
for script in script_all:
content = script.text
if 'window.__playinfo__=' in content:
content_res = content[20:]
data = json.loads(content_res)
video_url = data['data']['dash']['video'][0]['baseUrl']
headers['referer'] = video_url
video_res = requests.get(video_url, headers=headers)
with open('{}.mp4'.format(title), 'wb') as v_file:
v_file.write(video_res.content)
audio_url = data['data']['dash']['audio'][0]['baseUrl']
print(audio_url)
audio_res = requests.get(audio_url, headers=headers)
with open('{}.mp3'.format(title), 'wb') as a_file:
a_file.write(audio_res.content)
video_clip = VideoFileClip('{}.mp4'.format(title))
audio_clip = AudioFileClip('{}.mp3'.format(title))
merge_result = video_clip.set_audio(audio_clip)
merge_result.write_videofile('merge-{}.mp4'.format(title))
说明:
-
脚本使用 Python 3 编写,需要安装以下库:
- requests
- json
- moviepy
- beautifulsoup4
-
video_url变量需要替换为具体的视频网页链接。 -
脚本会根据视频网页的标题自动生成文件名,如果网页没有标题,则使用 'Untitled' 作为文件名。
-
脚本会下载视频和音频文件,并将其合并为一个视频文件,保存到当前目录下。
运行步骤:
- 安装必要的库:
pip install requests json moviepy beautifulsoup4
-
将脚本保存为
.py文件,例如download_video.py。 -
在脚本中替换
video_url变量为具体的视频网页链接。 -
运行脚本:
python download_video.py
原文地址: http://www.cveoy.top/t/topic/fQV6 著作权归作者所有。请勿转载和采集!