1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python网络爬虫网易云音乐_怎么使用Python网络爬虫爬取网易云音乐歌词

python网络爬虫网易云音乐_怎么使用Python网络爬虫爬取网易云音乐歌词

时间:2020-05-24 01:44:06

相关推荐

python网络爬虫网易云音乐_怎么使用Python网络爬虫爬取网易云音乐歌词

网易云音乐

今日小编给咱们共享网易云音乐歌词爬取办法。

本文的全体思路如下:

找到正确的URL,获取源码;

使用bs4解析源码,获取歌曲名和歌曲ID;

调用网易云歌曲API,获取歌词;

将歌词写入文件,并存入本地。

本文的意图是获取网易云音乐的歌词,并将歌词存入到本地文件。全体的效果图如下所示:

赵雷的歌曲

本文以歌谣歌神赵雷为数据收集方针,专门收集他的歌曲歌词,其他歌手的歌词收集办法能够类推,下图展现的是《成都》歌词。

赵雷歌曲---《成都》

一般来说,网页上显现的URL就能够写在程序中,运转程序之后就能够收集到咱们想要的网页源码。But在网易云音乐网站中,这条路行不通,由于网页中的URL是个假URL,实在的URL中是没有#号的。废话不多说,直接上代码。

获取网页源码

本文使用requests、bs4、json和re模块来收集网易云音乐歌词,记住在程序中增加headers和反盗链referer以模仿浏览器,避免被网站回绝拜访。这儿的get_html办法专门用于获取源码,一般咱们也要做反常处理,有备无患。

获取到网页源码之后,剖析源码,发现歌曲的姓名和ID藏的很深,纵里寻她千百度,发现她在源码的294行,藏在标签下,如下图所示:

歌曲名和ID存在的方位

接下来咱们使用美丽的汤来获取方针信息,直接上代码,如下图:

获取歌曲名和ID

此处要注意获取ID的时分需求对link进行切片处理,得到的数字就是歌曲的ID;别的,歌曲名是经过get_text()办法获取到的,最终使用zip函数将歌曲名和ID一一对应并进行回来。

得到ID之后便能够进入到内页获取歌词了,可是URL仍是不给力,如下图:

歌词的URL

尽管咱们能够理解的看到网页上的白纸黑字出现的歌词信息,可是咱们在该URL下却无法获取到歌词信息。小编经过抓包,找到了歌词的URL,发现其是POST恳求还有一大堆看不懂的data,总归这个URL是不能为咱们效能。那该点解呢?

莫慌,小编找到了网易云音乐的API,只需把歌曲的ID放在API链接上便能够获取到歌词了,代码如下:

调用网易云API并解析歌词

在API中歌词信息是以json格局加载的,所以需求使用json将其进行序列化解析出来,并合作正则表达式进行清洗歌词,假如不必正则表达式进行清洗的话,得到原始的数据如下所示(此处以赵雷的歌曲《成都》为例):

原始数据

很明显歌词前面有歌词出现的时刻,关于咱们来说其归于杂质信息,因而需求使用正则表达式进行匹配。固然,正则表达式并不是仅有的办法,小伙伴们也能够采纳切片的办法或许其他办法进行数据清洗,在此就不赘述了。

得到歌词之后便将其写入到文件中去,并存入到本地文件中,代码如下:

写入文件和程序主体部分

现在只需咱们运转程序,输入歌手的ID之后,程序将主动把该歌手的所唱歌曲的歌词抓取下来,并存到本地中。如本例中赵雷的ID是6731,输入数字6731之后,赵雷的歌词将会被抓取到,如下图所示:

程序运转成果

之后咱们就能够在脚本程序的同一目录下找到生成的歌词文本,歌词就被顺畅的爬取下来了。

信任咱们对网易云歌词爬取已经有了必定的认识了,不过easier said than down,小编主张咱们着手亲身敲一下代码,在实践中你会学的更快,学的更多的。

这篇文章教会咱们怎么收集网易云歌词,那网易云歌曲怎么收集呢?且听小编下回分解~~~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。