如何用python做一个歌曲的dictionary,然后根据用户选择的艺术家显示对应歌曲名?

Python015

如何用python做一个歌曲的dictionary,然后根据用户选择的艺术家显示对应歌曲名?,第1张

musics = {

    'Jackson': ['Music A', 'Music B'],

    'Lady Gaga': ['Umbrella', 'XXX']

}

上述代码展示了一个dict,key是作者名字,value是一个存有歌名的list。

当用户输入作者后,就可以查表打印出该作者的歌名。

当然, list里可以不止是字符串表示的歌名,而是含有歌曲各种数据的dict或者object。

市面上差不多有十多种python库可以编写MIDI格式的文件,本文会推荐大家使用PYTHON-MIDI。我觉得python-midi的优势是不光可以自己写程序生成MIDI,而且还可以对MIDI文件进行解析。这样的功能配合机器学习算法,或许可以帮助我们实现机器的自动编曲,当然这是后话。先来看下如何安装python-midi。

1.首先进入,将整个项目克隆下来。

2.在程序目录下执行以下命令安装,

python setup.py install11

3.如果想执行某个以mid为后缀的MIDI文件,只要执行以下命令即可:

mididump.py test.mid11

接下来介绍下如何写代码生成midi文件。

实操

在python-midi库中,每个乐谱用Pattern对象表示,乐谱中的每个音轨(通常音乐都有很多轨道组成,每种乐器是一个轨道)用Track对象表示。每个音符的开端用midi.NoteOnEvent表示,结束用midi.NoteOffEvent表示,可以在参数中定义每个字符的音长和音高。示例代码如下:

生成的是一个简单的音阶:

1首先在浏览器在打开网易云音乐的网页版,并点进一个歌单。

2.在浏览器的开发者工具审查该页面的元素(一般按f12可以弹出该工具),选择Network,之后选择doc可以简便地找到我们需要的元素。

注:以下两步第3,第4步主要是为了防止网站的反爬,经过这两步后,基本可以避开网站的反爬,所以如果你爬取的网站没有反爬的话,可以跳过这两步。

3.查看网页的请求方式--get请求

4.查看header

5.在Response中找到我们所需要的元素所在的标签位置(如:我们要爬取的是歌曲,既需要寻找歌曲的名字与其id信息,观察可以发现其中一首歌单中的歌名-moon在类名为“f-hide”的ul标签的li标签的a标签中) ~