前几天小编给大家分享了数据可视化分析,文末提到了网易云音乐歌词爬取。分享网易云音乐歌词爬取方法。这篇文章的大体思路是:找到正确的URL,获取源码;使用bs4解析源码获取歌曲名称和歌曲ID;调用网易云歌API获取歌词;将歌词写入文件并保存在本地。本文的目的是获取网易云音乐的歌词,并将歌词保存到本地文件中。整体效果图如下:本文以民歌大神赵磊为数据采集对象,专门采集其歌曲的歌词。其他歌手的收藏方法可以类推。下图是《成都》的歌词。一般来说,网页显??示的URL可以写在程序中,运行程序后就可以收集到我们想要的网页源代码。但是在网易云音乐网站中,这种方式是行不通的,因为网页中的网址是假网址,真实网址中没有/#。废话不多说,直接上代码。本文使用requests、bs4、json、re模块采集网易云音乐歌词。记得给程序加上headers和anti-leechingreferer模拟浏览器,防止被网站拒绝访问。这里的get_html方法是专门用来获取源码的,通常我们也需要处理异常来未雨绸缪。拿到网页源码后,我分析了源码,发现歌曲的名字和ID隐藏的很深。搜了她几千百度,发现她隐藏在源码第294行的标签下,如下图:接下来我们使用BeautifulSoup获取目标信息,直接上传代码,如下图:这里需要注意的是,在获取ID的时候,需要对链接进行分片,获取的数字就是歌曲的ID;另外,歌曲名是通过get_text()方法获取的,最后通过zip函数将歌曲名和ID一一匹配返回。获取到ID后可以进入内页获取歌词,但是网址还是不行,如下图:虽然我们在网页上可以清楚的看到黑白的歌词信息,但是我们无法获取到该网址下的歌词信息。小编通过抓包找到了歌词的URL,发现是一个POST请求,里面有很多看不懂的数据。简而言之,这个URL对我们不起作用。我应该怎么办?不要慌,小编找到了网易云音乐的API。只需将歌曲的ID放在API链接上即可获取歌词。代码如下:加载API中的歌词信息是json格式的,所以需要用json对其进行序列化解析,并用正则表达式清洗歌词。如果不使用正则表达式清洗,原始数据如下(这里以赵磊的歌曲《成都》为例):歌词出现的时间对我们来说是杂质信息,所以需要正则表达式用于匹配。的确,正则表达式不是唯一的方法。小伙伴们也可以使用切片或者其他的方式进行数据清洗,这里就不赘述了。拿到歌词后,写入文件,保存在本地文件中。代码如下:现在我们只要运行程序,输入歌手ID后,程序会自动将歌手演唱的歌曲的歌词抓取下来并保存到本地。比如本例中,赵磊的ID是6731,输入6731这个数字后,就会抓取赵磊的歌词,如下图:之后我们可以在脚本的同级目录下找到生成的歌词文本程序。Lyrics成功爬下来了。相信大家对网易云歌词爬取都有一定的了解,但是说起来容易做起来难。小编建议大家自己敲代码。在实践中,你会学得更快,学得更多。本文教你如何收集网易云歌词,如何收集网易云歌曲?并听小编下一章分解~~~想深入了解Python网络爬虫和数据挖掘的可以去专业网站:http://pdcfighting.com/