2513002960 发表于 2020-12-19 17:02

音乐下载器

本帖最后由 2513002960 于 2020-12-19 19:01 编辑

新手贴,希望大家可以多加支持
排版可能不好看,多家见谅
前两天看到酷我新出了一个软件没发现里面周董的歌居然也可以免费听
对于苦于没有东西联系爬虫的我简直是发现了一个宝藏
打包好的软件链接:https://shuxiaobai.lanzouj.com/iBK7Sjil7af音乐下载成功后软件会自动关闭,这个测试用就行
下面就是我的源代码import os
import re
import requests

"""
获取下载连接https://yueyue.kuwo.cn/api/service/music/audioUrl/{}
获取歌曲   http://yueyue.kuwo.cn/api/search/music/list?pn=0&rn=20&keyword={}&uid=-1&token=
"""

headers = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36'
}


def get_music_name(name, rn):
    url = 'http://yueyue.kuwo.cn/api/search/music/list?pn=0&rn={}&keyword={}&uid=-1&token='.format(rn, name)
    response = requests.get(url, headers=headers).json()
    return response['data']['resultList']


def get_url(id):
    url = 'https://yueyue.kuwo.cn/api/service/music/audioUrl/{}'.format(id)
    response = requests.get(url, headers=headers).json()
    return response['data']['audioUrl']


def dow(name, url):
    print(f'开始下载{name}')
    if not os.path.exists('./音乐/'):
      os.mkdir('./音乐/')
    pattern = re.compile(r"[\/\\\:\*\?\"\<\>\|]")
    name = re.sub(pattern, ' ', name)
    response = requests.get(url).content
    with open(f'./音乐/{name}.mp3', mode='wb') as f:
      f.write(response)
    print(f'{name} 下载完成')


in_name = input('请输入你要搜索的音乐: ')
in_rn = input('请输入你要搜索的数量: ')
if in_rn == '':
    rn = 11
else:
    rn = int(in_rn) + 1

datas = get_music_name(in_name, rn)
data_list = []
print('搜索到的歌曲有:')
for i in range(len(datas)):
    music_name = datas['songName'] + '-' + datas['artist']
    music_id = datas['musicRid'].split('_')
    data_list.append({"music_name": music_name, "music_id": music_id})
    print(f'{i + 1}. {music_name}')
num_in = input('请输入你要下载的音乐的序号: ')
music_url = get_url(data_list['music_id'])
name = in_name + '-' + datas['artist']
dow(data_list['music_name'], music_url)


52soft 发表于 2021-12-10 20:18

为什么我用了出错呢? 出错如下
Traceback (most recent call last):
File " .py", line 46, in <module>
    datas = get_music_name(in_name, rn)
File " .py", line 18, in get_music_name
    return response['data']['resultList']
KeyError: 'data'

2513002960 发表于 2021-12-12 14:13

52soft 发表于 2021-12-10 20:18
为什么我用了出错呢? 出错如下
Traceback (most recent call last):
File " .py", line 46, in


时间很长了,估计接口已经有改变了

ccspace 发表于 2020-12-19 17:21

6批 支持开源

2513002960 发表于 2020-12-19 17:35

ccspace 发表于 2020-12-19 17:21
6批 支持开源

谢谢,第一次发帖可能有很多不对的,欢迎指出:lol

15278066219 发表于 2020-12-19 17:39

阔以阔以 自己打包使用就很可{:301_996:}

max1066399 发表于 2020-12-19 17:56

就是那个波动音乐吗,我下载后周杰伦的歌就只有一首&#128563;

2513002960 发表于 2020-12-19 18:09

max1066399 发表于 2020-12-19 17:56
就是那个波动音乐吗,我下载后周杰伦的歌就只有一首&#128563;

我这边都可以下载啊,不过有的不是原版的,是现场版的

2513002960 发表于 2020-12-19 18:27

15278066219 发表于 2020-12-19 17:39
阔以阔以 自己打包使用就很可

我每天闲着也是闲着找点事情干

短腿猫不吃鱼丶 发表于 2020-12-19 18:41


谢谢@Thanks!

until-you 发表于 2020-12-19 18:45

楼主这个怎么使用呀 :lol新手哈谅解一下

2513002960 发表于 2020-12-19 18:58

until-you 发表于 2020-12-19 18:45
楼主这个怎么使用呀   新手哈谅解一下

等下,哈我把编译好的发上去
页: [1] 2 3 4
查看完整版本: 音乐下载器