Python爬取网易云音乐(By Haullee)

405 阅读1分钟

 复制代码前请阅读:

歌曲id获取:

点开其中一首歌,url后面的就是歌曲id,对应代码song_id

https://music.163.com/#/song?id=1999303437

网易云下载外链:

### 'http://music.163.com/song/media/outer/url?id={歌曲id}.mp3'
import os.path

import requests


def get_mp3(song_id, song_name):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36"
    }
    url =  f'http://music.163.com/song/media/outer/url?id={song_id}.mp3'
    print("获取下载网页为:  ", url)
    print("正在下载:", song_name)
    try:
        response = requests.get(url, headers=headers)
        filename = song_name + ".mp3"
        with open('D:/网易云音乐下载库/' + filename, 'wb') as f:
            f.write(response.content)
            print(f"\033[31m{song_name}\033[0m下载成功!")
            print('音乐文件保存在D:/网易云音乐下载库')
    except:
        print('下载失败')


if __name__ == "__main__":
    if not os.path.exists('D:/网易云音乐下载库'):  # 可以自定义文件保存的路径
        os.mkdir('D:/网易云音乐下载库')
    while True:
        song_id = input("输入您想要下载的网易云音乐的链接音乐Id部分,即id=")
        song_name = input("输入音乐名字:")
        get_mp3(song_id, song_name)
        answer = input('是否需要继续下载?y/n\n')
        if answer == 'y':
            continue
        else:
            break  # 退出循环