import requests import os import json from moviepy.editor import VideoFileClip, AudioFileClip from bs4 import BeautifulSoup

if name == "main": 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)

list_data = response.json()

res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.content, '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'] = 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))

原文地址: http://www.cveoy.top/t/topic/fQWc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录