那些年,我们听过的五月天——基于Python3爬取并下载网易云歌曲

前言:有三年开发经验的女程序员,有10来年追星路程的歌迷哈哈哈哈!五月天的歌曲成为了记忆中青涩而又躁动的青春的触发器。刚好最近在学习Python3网络爬虫,如是想把网易云音乐上面的关于五月天的歌曲及歌词给下载下来,下面将详细的介绍操作过程。
那些年,我们听过的五月天——基于Python3爬取并下载网易云歌曲

1. 总体思路分析

在行动之前,首先想象一下我们要将目标歌曲及歌词下载下来,需要经过哪些步骤?
在这里插入图片描述
按照上面的大体思路,我们可以自定义函数模拟爬取过程。

2. 具体爬取步骤

2.1 获取网页
在这里插入图片描述
导入包
在这里插入图片描述

我们使用的是requests库来获取网页,其中请求头head中的参数信息可以从网站上粘贴过来:
在这里插入图片描述
可以看到这里面的请求头参数中并没有 ‘Host’ 的参数信息,因此在上面的自定义函数中可以不用这个参数。

2.2 网页解析

接下来我们就可以用beautifulsoup来解析网页了:
在这里插入图片描述
上面函数中find中要查找的内容需要我们肉眼从网站源代码中搜寻:
在这里插入图片描述
网易云音乐用户界面在这里插入图片描述

从上面的观察中我们可以发现,我们需要获取的歌曲信息都在源码属性 class=‘f-hide’的

  • 标签中,而后面的 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”,其中前者存放的是歌词,后者存放的是曲子。我们分别打开看看:
在这里插入图片描述
爬取的歌曲
在这里插入图片描述
接下来,我们可以好好的享受一下我们的劳动成果了。

结语:越来越觉得通过这种输出方式来学习是一种非常有效的方法,然后最重要的是能体会到快乐。希望本文能够帮助到需要的人…

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值