音乐下载cond

41 阅读1分钟
import concurrent.futures
import datetime

import bs4
import requests

id = input("请帅哥靓女输入想要下载的榜单:")

start_time = datetime.datetime.now()

url = f'https://music.163.com/discover/toplist?id={id}'

headers = {
    'user-agent':'Mozilla/5.0(Window NT 10.0;Win64;x64)Applewebkit'
}

resp = requests.get(url,headers=headers)
text = resp.text

def caidan(a):

    ext_ulr = a['href']
    if ext_ulr == "":
        return

    splited = str(ext_ulr).split('id=')
    if len(splited)<2:
        return
    music_id = splited[1]
    music_url = f'http:music.163.com/song/media/outer/url?id{music_id}'
    music_resp = requests.get(music_url,headers = headers)
    music_content = music_resp.content
    music_name = a.text
    with open(f'music/{music_name}.mp3','wb') as file:
        file.write(music_content)

    print(f"下载完成:{music_name}")

parsed = bs4.BeautifulSoup(text,'html.parser')
many_a = parsed.find('ul',attrs={'class':'f-hide'}).find_all('a')
with concurrent.futures.ThreadPoolExecutor(max_workers=10000) as shuaige:
    for a in many_a:
        shuaige.submit(caidan,a)