今天我来分享一下如何用python爬取网易云音乐歌曲的歌词,网易云音乐的歌词的爬取思路同前面介绍过的爬取网易云音乐的歌曲评论的爬取思路一致。由于两者的加密思路都是一致的,因此我们只需分析出被加密了的参数,再利用前面介绍到的方法便能爬取到网易云音乐的歌词,这里我顺便把大家爬取过程可能遇到的问题说一下。
一,分析Ajax请求
我就以Dream It Possible为例进行讲解,这首歌的URL:
/#/song?id=38592976
打开这首歌所在的页面,再打开浏览器开发者工具,点击Network–再点击XHR,重新加载这个页面。我们会发现URL为/weapi/song/lyric?csrf_token=的ajax请求的返回内容中包含了我们要爬取的歌词内容,这时如果你拿这个请求的表单数据(Form Data)去发起post请求,你会发现返回体中并没有内容。
二,分析加密参数
点击控制面板的source–右侧XHR/fetch Breakpoints,添加一个URL contains “/weapi/song/lyric?csrf_token=”的断点,再点击重新加载,单步调试过去,找到window.asrsea()函数的第一个参数的形式是:
# id为歌曲的id号,后面的lv和tv都是固定值
# 加密得到的params的长度为108,不要拿浏览器控制面板中的数据进行测试,那里的params长度为128,不符合
{id: "38592976", lv: -1, tv: -1}
最后把这个参数加到我们前面爬取评论的加密函数中,利用加密得到的params(108位长)和encSecKey(256位长),我们便能获取到歌曲的歌词了。获取源代码
注意:不要拿浏览器控制面板中这个请求的表单数据进行测试,那里的params长度为128,不符合!
喜欢 (12)or分享 (0)