对网易云音乐参数(params,encSecKey)的分析

我们如果对网易云音乐进行爬虫的话,我们会发现,提交的参数是(params,encSecKey),然而这两个参数是一串很长的东西

我们要对网易云进行爬虫,那么就一定要将这两个参数弄明白,然后才可以进行爬虫,不然这两个参数将限制着我们很多事情,下面是我对这两个参数的分析,参考了知乎大神的方法,这里将原帖地址写上来https://www.zhihu.com/question/36081767

主要参考 作者:平胸小仙女 的分析

下面进行分析:

我在分析中要用到的几个软件,Google浏览器,火狐浏览器,burpsuite,Fiddler4,sublmie text3,notepad,pycharm

例子是:周杰伦的告白气球,爬取评论

首先我们用Google浏览器查看(F12)

点击第一个name,然后选择response

看里面的内容,然后一直再name里面找,知道找到一个在response里面评论的地址

这里可以看到

Name为R_SO_4_418603077?csrf_token=

Response里面为评论

查看headers知道url为

http://music.163.com/weapi/v1/resource/comments/R_SO_4_418603077?csrf_token=

参数为

params:

4xP7F7cUOXDMzOaAFyjO59O+7BqsoAZYlRPUmMcRc7TEyXU74Myk+RHOhsiKB7leysTntGMRFrg3g5YGuYDvYLKmOqtzMFc4uB/YZYs5SENhFgFsVfjYGK/ej16PGp4ZUkFc8dDpTY/oXn1R0C6AGlsDbPkwn1vOxk3EH2P2qsabp1cOAlfgjxNWE4eY+iVa

encSecKey:

7a10fea1b79811ec8b0dd0a85cc0326a18b6e32c5c9ff5e3c07606d0c8f96f92e0c6fa8ea025db59e55746713122c7dcb5a74259c11b0dc32038cac3c5799d9e0da5f394cb9ef72e69f97e0d9b051270e9c9d38ee50f23e04662b2bd3dec63ec1583ef1761186557c9fd0d0be200c53a3a19f10011c5d4c81b6c87c0d0311d3e

复制到火狐浏览器查看一下(使用hackbar插件)

确定这个url是对的

然后就可以尝试用脚本跑出来

但是这里的参数只能跑前面第一页的,不能全部将评论爬出来

接下来分析参数

继续用Google浏览器

看到使用了js,那就是要分析js文件了

点击这个js文件

右键另存为core.js

然后用notepad打开

看到这么乱,我们只要查找一下就好了

查找params

不断地找,然后再第90行找到我们所要地params值

确定这个就是我们要找地js代码,复制出来分析

这里的params和encSecKey都是经过asrsea加密的,然后asrsea里面的内容是什么,和怎样子加密是我们要搞明白的问题

这里有个方便的方法,就是在线调试

使用Fiddler4

使用火狐浏览器打开那首歌的链接http://music.163.com/#/song?id=418603077

然后设置火狐浏览器的代理为系统代理

然后刷新那个链接

找到这个core.js

点击右边的AutoResponder

将那个js拉过来

然后选中它,点击下面的rule,替换js为本地的js,然后点击save

就是这个样子

返回火狐浏览器,点击F12,然后选着控制台,选中日志

然后就用notepad修改js文件测试

在我们需要的代码前面输入window.console.info(j0x);然后保存

刷新火狐浏览器

发现出来了很多数据,这个就是j0x那个参数了

然而{ rid: "R_SO_4_418603077", offset: "0", total: "true", limit: "20", csrf_token: "" }这个就是我们要的参数,记录下来

尝试点击第二页

又出现了一个json但是里面的参数不一样,offset变成了20,total变成了false

再尝试第三页

得到结论就是offset就是页数,而且是一个等差数列,offset =(页数-1)*20

total除了第一页是true之外,其他都是false

Limit猜测是评论的数量,后面验证

观察

发现那个asrsea的内容又4个,第一个就是刚才的json,第二个是一个固定的值,第三个不知道是不是固定值,第四个也是固定值,现在只要找到第三个,就可以解决了

查看core.js

第89行发现

那就是说第三个参数也是个固定值,

那只要将全部参数都找出来,就可以了

唯一是变量的也就是第一个参数了

同样方式将那3个参数列出来

第二个

第三个

第四个

然后就可以得到全部的参数了

知道了参数然后就是看asrsea的程序了

点击asrsea发现就是等于d方法

然后找出所有相关的代码程序

然后按照加密,用python写一遍,就可以了

部分代码(完整代码在最后面的链接)

可以看到我们用那些参加加密,然后可以得到评论,最热的有15条,最新的有20条,

尝试修改里面的limit参数

改为30

得到30个最新评论

也就是我们之前的猜测是对的

然后去掉rid尝试

发现还是可以得到那些评论,也就是和那个rid是否有参数没有关系

经过测试,那个limit的最大值为100

前面一直没有说另外一个参数(encSecKey),因为这个相当于一个常量

观察

发现e为第二个参数,f为第三个参数,也就是这两个都是常量,

i为16为随机数,

这里可以发现是随意产生随机数

两个参数都用到这个i,但是,一旦我们把i就设计为16位随机字母,将它固定了,然后传给两个参数进行加密 ,那么得到的encSecKey就是一个常量,所以我们直接找出一个i就

可以了,用刚才的在线调试,可以找出来。

代码GitHub链接

https://github.com/niechaojun/NetEaseCloudCrawer

分析文件在

https://github.com/niechaojun/Analysis-of-the-NetEase-cloud-comment-parameters

原文地址:https://www.cnblogs.com/nienie/p/8511999.html

时间: 2024-11-05 15:55:37

对网易云音乐参数(params,encSecKey)的分析的相关文章

网易云音乐Java版爬虫

网易云音乐Java版爬虫 在编写爬虫之前,我们需要对网易云音乐网站网页类型进行分析,确认哪些页面是我们需要的,哪些页面是我们可以忽略的. 进入网易云音乐首页,浏览后发现其大概有这么几种类型的URL: 推荐页面 排行榜列表以及排行榜页面 歌单列表以及歌单页面 主播电台列表以及主播电台页面 歌手列表以及歌手页面 专辑列表(新碟上架)以及专辑页面 歌曲页面 最终需要爬取的数据在歌曲页面中,该页面里包含了歌曲的名称以及歌曲的评论数量. 另外,我们还需要尽可能多的获取歌曲页面,这些信息我们可以从前面6种类

Python 获取网易云音乐热门评论

--> html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.ric

python爬取网易云音乐歌曲评论信息

网易云音乐是广大网友喜闻乐见的音乐平台,区别于别的音乐平台的最大特点,除了"它比我还懂我的音乐喜好"."小清新的界面设计"就是它独有的评论区了------各种故事汇,各种金句频出.我们可以透过歌曲的评论数来判断一个歌者的市场分量和歌曲的流行度.言归正传,如果我们想要简单爬取指定歌曲的评论内容来做词云或者其他相关数据分析,有没有容易上手的好方法呢? 首先,我们打开网易云音乐的网页版:https://music.163.com/,随便选择一首歌曲,如林志炫版本的<

网易云音乐评论爬虫(2):歌曲的全部评论

用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的全部评论,由于网易云音乐的评论都做了混淆加密处理,因此我们需要深入了解它的加密过程之后才能爬取到网易云音乐歌曲的全部评论. 加qq群813622576或vx;tanzhouyiwan免费领取Python学习资料 一,首先分析数据的请求方式 网易云音乐歌曲页面的URL形式为https://music.163.com/#/song?id=歌曲id号

python3.基础爬取网易云音乐【超详细版】

简单学习了python爬虫之后,我们就可以嘿咻嘿咻了...因为平时就是用网易云听的歌,也喜欢看歌里的评论,所以就爬网易云音乐评论吧! 正式进入主题 首先还是去找目标网页并开始分析网页结构,如下 上面的三个箭头都是所要找的数据,分别是评论用户,评论和点赞数,都可以用正则表达式找出来,接下来继续找怎样找到下一页的数据,还是用开发者工具,但是当点击下一页的时候,网页的url没有变,说明网页是动态加载,所以就不能在当前网页找数据了,应该在他的xhr文件里找,所以点入network看看,然后也点击下一页一

python实现网易云音乐批量下载

今天给大家带来的是网易云音乐批量下载,代码有些粗糙,以后有时间再慢慢改进.我只爬取了某个明星的全部歌曲,如果再添加点代码完全可以爬取整站音乐,但是我认为还是点到为止,剩下的代码也不难.首先,通过网页抓包获取真实音乐文件的链接,然后找到该提交地址,并分析传入的 data .比较走运的是,网上有很多关于获取 encSecKey和 params 的教程,大家可以搜索一下. 一.抓包 我们的目的是获取到真实的 URL 地址,可以看到 post 访问该网址,可以返回真实的 URL . 二.分析 post

Python爬一爬网易云音乐

结果 对过程没有兴趣的童鞋直接看这里啦. 评论数大于五万的歌曲排行榜 首先恭喜一下我最喜欢的歌手(之一)周杰伦的<晴天>成为网易云音乐第一首评论数过百万的歌曲! 通过结果发现目前评论数过十万的歌曲正好十首,通过这前十首发现: 薛之谦现在真的很火啦~ 几乎都是男歌手啊,男歌手貌似更受欢迎?(别打我),男歌手中周杰伦.薛之谦.许嵩(这三位我都比较喜欢)几乎占了榜单半壁江山... <Fade>电音强势来袭,很带感哈(搭配炫迈写代码完全停不下来..) 根据结果做了网易云音乐歌单 : 评论数

抓取网易云音乐歌曲热门评论生成词云

前言 抓数据 抓包分析 加密信息处理 抓取热门评论内容 词云 词云运行效果 总结 前言 网易云音乐一直是我向往的"神坛",听音乐看到走心的评论的那一刻,高山流水.于是今天来抓取一下歌曲的热门评论.并做成词云来展示,看看相对于这首歌最让人有感受的评论内容是什么. 做成词云的好处就是直观以及美观, 其他的我也想不出来有什么了. 抓数据 要想做成词云,首先得有数据才行.于是需要一点点的爬虫技巧. 抓包分析 加密信息处理 抓取热门评论内容 抓包分析 使用Chrome控制台.我们可以轻松的找到评

网易云音乐的歌单推荐算法

[转载]原文地址:https://www.zhihu.com/question/26743347 原文: 不是广告党,但我却成为网易云音乐的的重度患者,不管是黑红的用户界面,还是高质量音乐质量都用起来很舒服.我喜欢听歌,几乎每周不低于15小时,但其实听得不是特别多,并没有经常刻意地去搜歌名,所以曲目数量我并不是很在乎.但是比起其它,网音给我推荐的歌单几乎次次惊艳,而且大多都没听过,或者好久以前听过早就忘记了名字,或者之前不知道在哪听过 只是知道其中一部分旋律,根本不知道名字,等等,听起来整个人大