下载网易云音乐(我喜欢的歌曲)

简介: 下载网易云音乐(我喜欢的歌曲)
import time
import os
import requests
import json
from concurrent.futures import ThreadPoolExecutor

def getsongsid(id=3778678):
    root = "http://localhost:3000"
    cmd = f"/playlist/detail?id={id}"
    url = root + cmd
    res = requests.get(url)
    res_dict = json.loads(res.text)
    playlist = res_dict["playlist"]["trackIds"]
    ob = []
    for i in playlist:
        temp = {}
        temp["id"] = i["id"]
        ob.append(temp)
    return ob

# 第二步:循环遍历获取歌曲详细信息(ID ,歌名,歌手名字,下载链接)

def downsong(i):
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'}
    import requests,json
    root = "http://localhost:3000"
    cmd = f"/song/detail?ids={i['id']}"
    url = root + cmd
    res = requests.get(url,headers=headers)
    res_dict = json.loads(res.text)
    i["name"] = res_dict["songs"][0]["name"]
    i["author"] = res_dict["songs"][0]["ar"][0]["name"]
    i["url"] = f"http://music.163.com/song/media/outer/url?id={i['id']}.mp3"

    # 判断是否可以下载
    url = f"{root}/song/url?id={i['id']}"
    res = requests.get(url,headers=headers)
    res_dict = json.loads(res.text)
    if res_dict["data"][0]["url"] != None:
        # print("可以下载")
        url = f"http://music.163.com/song/media/outer/url?id={i['id']}.mp3"
        # print(url)
        # print(f"正在下载{i['name']}...")
        r = os.path.isfile(f"D://2/{i['name']}.mp3")
        if r == False:
            res = requests.get(url,headers=headers)
            with open(f"D://2/{i['name']}.mp3","wb") as f:
                f.write(res.content)
    else:
        print(f"{i['name']}不可以下载")

def main():
    """
    6834406177
    :return:
    """
    playlist_arr = [
        6834406177,
        6834632250,
        6834567650,
        7443636626,

    ]
    ob = []
    for index in playlist_arr:

        temp_ob = getsongsid(index)  

        ob += temp_ob
    print(ob)
    tps = ThreadPoolExecutor(100)
    for i in ob:
        tps.submit(downsong,i)
        time.sleep(0)
    tps.shutdown()
if __name__ == "__main__":
    main()
相关文章
|
数据采集
网易云音乐下载器
网易云音乐下载器
网易云音乐获取歌单详细数据
网易云音乐获取歌单详细数据
可以制作微信自导自演的聊天记录
Python实现制作自导自演微信聊天记录
|
6月前
如何制作一个微信音乐小游戏
如何制作一个微信音乐小游戏
180 0
在文章中添加网易云音乐
在文章中添加网易云音乐
196 0
|
Web App开发
怎么下载QQ空间或者知乎类似网站上面的视频文件
怎么下载QQ空间或者知乎类似网站上面的视频文件
142 0
怎么下载QQ空间或者知乎类似网站上面的视频文件
youtube下载视屏和字幕办法
youtube下载视屏和字幕办法
197 0
|
数据采集 Python
Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载
业精于勤而荒于嬉,行成于思而毁于随。 吃得苦中苦,方为人上人,受得累中累,方成富贵人。完全赞同
Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载