一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

2021-01-22 00:16

阅读:368

    标签下,如下图所示:

    技术图片

    接下来我们利用美丽的汤来获取目标信息,直接上代码,如下图:

    技术图片

    此处要注意获取ID的时候需要对link进行切片处理,得到的数字便是歌曲的ID;另外,歌曲名是通过get_text()方法获取到的,最后利用zip函数将歌曲名和ID一一对应并进行返回。
    得到ID之后便可以进入到内页获取歌词了,但是URL还是不给力,如下图:
    技术图片

    虽然我们可以明白的看到网页上的白纸黑字呈现的歌词信息,但是我们在该URL下却无法获取到歌词信息。小编通过抓包,找到了歌词的URL,发现其是POST请求还有一大堆看不懂的data,总之这个URL是不能为我们效力。那该点解呢?
    莫慌,小编找到了网易云音乐的API,只要把歌曲的ID放在API链接上便可以获取到歌词了,代码如下:

    技术图片

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

    技术图片

    很明显歌词前面有歌词呈现的时间,对于我们来说其属于杂质信息,因此需要利用正则表达式进行匹配。诚然,正则表达式并不是唯一的方法,小伙伴们也可以采取切片的方式或者其他方法进行数据清洗,在此就不赘述了。
    得到歌词之后便将其写入到文件中去,并存入到本地文件中,代码如下:

    技术图片

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

    技术图片

    之后我们就可以在脚本程序的同一目录下找到生成的歌词文本,歌词就被顺利的爬取下来了。
    相信大家对网易云歌词爬取已经有了一定的认识了,不过easier said than down,小编建议大家动手亲自敲一下代码,在实践中你会学的更快,学的更多的。
    这篇文章教会大家如何采集网易云歌词,那网易云歌曲如何采集呢?且听小编下回分解~~~
    想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/

    一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取

    标签:zip   异常处理   行数据   访问   方式   网站   header   数据可视化   网易云   

    原文地址:https://www.cnblogs.com/dcpeng/p/12892736.html


评论


亲,登录后才可以留言!