大家好,今天小编来为大家解答以下的问题,关于个人音乐网站源码分享演示,音乐网站源码免费下载这个很多人还不知道,现在让我们一起来看看吧!
前言:有三年开发经验的女程序员,有10来年追星路程的歌迷哈哈哈哈!五月天的歌曲成为了记忆中青涩而又躁动的青春的触发器。刚好最近在学习Python3网络爬虫,如是想把网易云音乐上面的关于五月天的歌曲及歌词给下载下来,下面将详细的介绍操作过程。
1.总体思路分析
在行动之前,首先想象一下我们要将目标歌曲及歌词下载下来,需要经过哪些步骤?
爬虫思路
按照上面的大体思路,我们可以自定义函数模拟爬取过程。
2.具体爬取步骤
2.1获取网页
导入包
获取网页
我们使用的是requests库来获取网页,其中请求头head中的参数信息可以从网站上粘贴过来:
请求头信息
可以看到这里面的请求头参数中并没有‘Host’的参数信息,因此在上面的自定义函数中可以不用这个参数。
2.2网页解析
接下来我们就可以用beautifulsoup来解析网页了:
网页解析
上面函数中find中要查找的内容需要我们肉眼从网站源代码中搜寻:
网易云音乐用户界面
网页源码
从上面的观察中我们可以发现,我们需要获取的歌曲信息都在源码属性class=’f-hide’的<ul>标签中,而后面的herf=’/song?id=55331024’中的id信息则是每一首曲子的地址。根据这些信息再去理解我们上面写的函数就比较清晰了。
2.3信息提取
按照上面的写法,获取的信息里面还有很多我们不想要的杂质,因此为了获取更纯净的歌词信息,我们找到了网易云音乐的API,只要把歌曲的ID放在API链接上便可以获取歌词了。在API中歌词信息是以json格式加载的,所以需要利用json将其进行序列化解析出来,并配合正则表达式进行清洗歌词。具体代码如下:
歌词提取
这样的话我们就能获取每一首音乐的歌词了。
2.4歌词存储
接下来我们将刚刚提取的歌曲歌词存储在指定的文件夹中:
存储歌词
这一步比较简单,需要强调的是文件的写入格式,‘a’表示的是以追加方式打开一个文件。如果该文件已存在,文件指针将会放在文件结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件来写入。
2.5下载并存储歌曲
除了下载歌词外,我们还有一个任务就是要将曲子给下载下来:
下载并保存歌曲
这里面我们用到的是urllib.request版块中的urlretrieve函数,该函数的作用是将远程数据下载到本地。
2.6主函数
以上,我们将主要的函数都完成了,接下来的工作便是将这些函数进行组合已达到我们爬取的目的。
主函数
在主函数中,我们用到了异常处理机制,因为我们在爬取的过程中发现有些歌曲的命名方式的问题导致存储失败,从而造成程序出现bug,这里截取的FileNotFoundError异常就是主要避免这种问题。
2.7运行结果
运行以上所有的函数,如果正常的话将会出现如下的结果:
运行的结果
其中我们需要输入歌手的ID,这个可以在网易云音乐上查找出来。
然后,我们可以在本地的文件中找到两个文件夹”lyrics1″和”songs1″,其中前者存放的是歌词,后者存放的是曲子。我们分别打开看看:
爬取的歌词
爬取的歌曲
接下来,我们可以好好的享受一下我们的劳动成果了。
结语:越来越觉得通过这种输出方式来学习是一种非常有效的方法,然后最重要的是能体会到快乐。希望本文能够帮助到需要的人…
欢迎喜欢五月天、从事Android开发的你关注我喔~
好了,文章到此结束,希望可以帮助到大家。