抓取网页音频( 文尾分享网易云音乐歌词爬取方法,的总体思路)

优采云 发布时间: 2022-04-13 03:16

  抓取网页音频(

文尾分享网易云音乐歌词爬取方法,的总体思路)

  

  网易云音乐

  前几天小编给大家分享了数据可视化分析。文末提到了网易云音乐歌词爬虫。今天小编就给大家分享一下网易云音乐的歌词抓取方法。

  本文的大致思路如下:

  找到正确的网址并获取源代码;

  使用bs4解析源码得到歌曲名和歌曲ID;

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

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

  本文的目的是获取网易云音乐的歌词,并将歌词保存到本地文件。整体效果图如下:

  

  赵磊的歌

  本文以民歌神赵雷为数据采集对象,具体采集他的歌曲歌词,其他歌手的歌词采集方法可以类推。下图为《成都》的歌词。

  

  赵磊的歌——《成都》

  一般来说,网页上显示的URL可以写在程序中,运行程序后,可以采集到我们想要的网页的源代码。但是在网易云音乐网站中,这种方式是行不通的,因为网页中的网址是假网址,真实网址中没有#号。废话不多说,直接上代码吧。

  

  获取网页源代码

  本文对采集网易云音乐歌词使用requests、bs4、json和re模块,记得在程序中添加headers和防盗链referer来模拟浏览器,防止被网站拒绝访问@> 。这里的get_html方法是专门用来获取源代码的。通常,我们还需要进行异常处理并采取预防措施。

  拿到网页源代码后,我分析了源代码,发现这首歌的名字和ID被隐藏得很深。我千百度搜索她,发现她在源码的第294行,隐藏在标签下,如下图:

  

  歌曲名称和 ID 所在的位置

  接下来我们使用Beautiful Soup获取目标信息,直接上传代码,如下图:

  

  获取歌曲名称和ID

  这里需要注意的是,在获取ID的时候,需要对链接进行切片,获取的数字就是歌曲的ID;另外,通过get_text()方法获取歌曲名称,最后歌曲名称和ID与zip函数一一对应。返回。

  拿到ID后就可以进入内页获取歌词了,但是URL还是不给力,如下图:

  

  歌词网址

  虽然我们可以清楚的看到网页上黑白呈现的歌词信息,但是我们无法获取到这个 URL 下的歌词信息。小编通过抓包找到歌词的URL,发现是POST请求,里面有很多数据看不懂。简而言之,这个 URL 对我们不起作用。解决方案呢?

  别慌,小编找到了网易云音乐的API。只需将歌曲 ID 放在 API 链接上即可获取歌词。代码如下:

  

  调用网易云API解析歌词

  在API中,歌词信息是以json格式加载的,所以需要使用json进行序列化解析,并使用正则表达式来清洗歌词。以赵磊的歌曲《成都》为例):

  

  原创数据

  显然,有歌词呈现在歌词面前的时候。对我们来说,它属于杂质信息,所以我们需要使用正则表达式来匹配。诚然,正则表达式并不是唯一的方法,小伙伴们也可以使用切片或者其他方法进行数据清洗,这里不再赘述。

  获取歌词后,将其写入文件并保存到本地文件。代码如下:

  

  编写文件和程序主体部分

  现在只要我们运行程序,输入歌手的ID,程序就会自动抓取歌手演唱的歌曲的歌词,并保存在本地。本例中,赵磊的ID为6731,输入6731后,会抓取赵磊的歌词,如下图:

  

  程序运行结果

  之后,我们可以在脚本程序的同一目录下找到生成的歌词文本,歌词就成功爬下来了。

  相信大家对网易云歌词爬虫都有一定的了解,但是说起来容易做起来难,小编建议大家自己敲代码,在实践中你会学得更快更多。

  这文章教你采集网易云歌词,网易云歌曲采集怎么样?赶紧戳小编面前的文章吧~~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线