Python轻松爬取网易云音乐部分数据(不足25行代码)


相信不少童鞋和小编一样应该是网易云音乐的用户吧,对于某些歌曲只能在线试听是不是不是很满意呢?作为一个有着一个技术心的小编,怎么能忍受歌曲不能下载下来的痛苦呢。小编左思右想(百度),终于找到了方法,那就是用Python实现!今天小编先介绍其中一部分内容,明天会介绍后续的部分,想了解的可以关注小编明天的文章。请看官看清楚哦,别看完又说哪里实现了哪里实现了。[摊手]

今天我们要做的是批量获取网易云音乐上的歌曲、歌手名。

首先我们要知道这些信息存放在哪里,小编已经找到了,就直接发给大家吧:

Python轻松爬取网易云音乐部分数据(不足25行代码)

就是在这个链接里,通过不同的id会有不同的歌曲页面,上面链接的部分页面如下所示:

Python轻松爬取网易云音乐部分数据(不足25行代码)

大家可以看到,在单曲和歌手那里就有歌曲名和歌手信息。

接下来我们就要解析这个网址,然后从中剥离出我们需要的信息。

幸运的是这个网站比较好剥离,但是网址有所变化,这个网址应变为:

http://music.163.com/song?id=idNum

这里的idNum是一个变量。具体看完代码就知道了(代码量非常少):

Python轻松爬取网易云音乐部分数据(不足25行代码)

运行的效果如下所示:

Python轻松爬取网易云音乐部分数据(不足25行代码)

代码解释:

1-6行:导入包

8-20行:实现获取歌名、歌手信息的功能。

下面重点对8-20行进行解释:

10-12行:递增id,从而获得不同歌曲的网址信息。

13-15行:下载网址,并且创建一个StringIO对象,方便后续操作。

16行:利用BeautifulSoup解析网址。

17行:由于网页title中就包含了歌曲和歌名信息,所以只需获取第一个title的tag就可以获得我们所需的信息。获取信息后,利用split(' - ')进行分割,从而获得单独的歌曲信息和歌手信息。

18-19行:对歌曲名以及歌手字符串进行解码并输出。

通过以上不足30行的代码,我们便批量获得了网易云音乐上的歌曲和歌名信息,以此为基础,在利用一点小技巧,我们便可以实现下载只能在线试听歌曲的功能,具体请关注小编明日更新的文章。

以上内容仅供参考,希望对你有用。

本文内容为头条号: 慧用科技 原创,转载请注明出处。