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

简介: 下载网易云音乐(我喜欢的歌曲)
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()
相关文章
|
数据采集
|
3月前
网易云音乐下载器
网易云音乐下载器
43 1
网易云音乐获取歌单详细数据
网易云音乐获取歌单详细数据
|
JSON API 数据格式
mxget 的Python实现,优雅地下载你喜欢的音乐
mxget 的Python实现,优雅地下载你喜欢的音乐
|
前端开发
仿qq音乐官网部分静态页面
仿qq音乐官网部分静态页面
133 0
在文章中添加网易云音乐
在文章中添加网易云音乐
172 0
|
Web App开发
怎么下载QQ空间或者知乎类似网站上面的视频文件
怎么下载QQ空间或者知乎类似网站上面的视频文件
139 0
怎么下载QQ空间或者知乎类似网站上面的视频文件
youtube下载视屏和字幕办法
youtube下载视屏和字幕办法
185 0
|
数据采集 Python
Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载
业精于勤而荒于嬉,行成于思而毁于随。 吃得苦中苦,方为人上人,受得累中累,方成富贵人。完全赞同
Python爬虫系列16-采集网易音乐百万好听的歌曲进行批量下载