课程地址:https://www.bilibili.com/video/BV1Mi4y147Yb
up主省略掉的,用报错信息来一一回溯的方式把js文件补全的过程,主要把握的几个点(把以下部分代码找到粘贴到js中即可补全并顺利运行):

CryptoJS变量

前情提要:在up主课程视频的13:13处,刚删掉了windows变量,现在报错CryptoJS未定义。

CryptoJS 在网页源js代码中出现13次,除了最开始的那个已经粘贴到我们的js文件中的函数,还出现在源js代码中的其余共6处函数中。

为了不让控制台输出‘CryptoJS未定义’,需要将CryptoJS在源js代码出现过的全部函数完整地复制,并粘贴到我们的js文件中。

需要找到的其余6处函数,up主没有带着一个一个找,我个人的寻找过程总结如下。

  • 在网页源码js中找到CryptoJS出现的第1处函数:
var CryptoJS = CryptoJS || function(u, p) {...}(Math);
  • 第2~4处是介于第1处和第5处之间的三个无名函数:
//第2处
(function() { ...}
)();
//第3处
(function(u) { ...}
)(Math);
//第4处
(function() { ...}
)();

第5处紧跟在第4处后面:

CryptoJS.lib.Cipher || function(u) {...}();

第6处是紧跟在第5处后面的一个无名函数:

(function() { //函数内第一行出现了CryptoJSfor (var u = CryptoJS, ...}
)();

一段集中的定义变量

接下来会报错maxDigitVal未定义,由此找到下面一大段代码,定义了包括maxDigitVal在内的许多变量:

var maxDigits, ZERO_ARRAY, bigZero, bigOne, dpl10, lr10, hexatrigesimalToChar, hexToChar, highBitMasks, lowBitMasks, biRadixBase = 2, biRadixBits = 16, bitsPerDigit = biRadixBits, biRadix = 65536, biHalfRadix = biRadix >>> 1, biRadixSquared = biRadix * biRadix, maxDigitVal = biRadix - 1, maxInteger = 9999999999999998;
setMaxDigits(20),
dpl10 = 15,
lr10 = biFromNumber(1e15),
hexatrigesimalToChar = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"),
hexToChar = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"),
highBitMasks = new Array(0,32768,49152,57344,61440,63488,64512,65024,65280,65408,65472,65504,65520,65528,65532,65534,65535),
lowBitMasks = new Array(0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535);

把这一大段变量定义找到并复制粘贴到我们的js文件中。

剩下的全是函数(共30个)

然后剩下的报错就全部是函数名了,总共30个,无序(没按照出现在源js代码的先后顺序)排列如下,每行6个用空格分隔:

setMaxDigits BigInt biFromNumber biFromHex hexToDigit charToHex
biHighIndex BarrettMu biCopy biDivide biDivideModulo biNumBits
biShiftLeft arrayCopy biMultiplyByRadixPower biCompare biSubtract biMultiplyDigit
biShiftRight BarrettMu_modulo biDivideByRadixPower biModuloByRadixPower BarrettMu_multiplyMod BarrettMu_powMod
encryptedString biToHex digitToHex reverseStr biMultiply RSAKeyPair

一个一个按照名字寻找定义,然后复制粘贴到我们的js文件中就不会再报‘未定义’类型的错了。
以setMaxDigits函数为例,在源js代码搜索’setMaxDigits’,看到function setMaxDigits(a) {这样的定义头,把整个函数复制下来,粘贴到我们的js文件中就ok了,以此类推所有30个函数。

成功输出结果

控制台不再报错,成功输出结果如下。

{'params': 'OPYiEeviGUsvOLMa7cENWV7bCk8iZ2CmHlw6hVUAgWc5nibtrcYDJvWXChluboDZQ1Fb3xp6p8r/wPPCBZ2gQQtGGkha6mAum5MAuv/gbGVFys/ziQWBL62d2YCtv4EnnEW/oMUKbqLWfFvD4tdMebZ5yU8g5SRSDA3FUWxgy7JQbFnQWOrkV7nCKUYG/mo/RrcCMXw3bzWrneVMrw7MEJfImsLZ1zFKLAcicx6Sagh02FkeVMDgTJCR4regbpPu1LoKRezCFk3oE0ahIwIzgsJvrKewIrYn+XjXXEXNt6E=',
'encSecKey': '3da8f6c2b63a75b7ed2c3c2220c5396f6116cf96cab3be9f32d3adf6b33123729b38ac69c0520a735fb269c72847ccb753a77d401079c9ea7ae86329d66c697ba8ba9dc4aab08f1d17f04037f03547695b7d4949672da2ef9246f7c9d9bd3bba4059f2bcde6ab5e74103a453bb2e20a1298350764bf9cca0e403ade8704bb08e'}

Python爬虫网易云音乐--JS逆向-补充笔记相关推荐

  1. python爬虫网易云音乐评论最多的歌_Python网易云音乐评论爬虫,歌曲的全部评论...

    用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的全部评论,由于网易云音乐的评论都做了混淆加密处 ...

  2. python爬虫网易云音乐最热评论并分析_网易云音乐热门评论api分析

    网上有现成的例子我就扒过来了!! title: 网易云评论api分析 date: 2018-12-24 20:54:46 tags: [python] 网易云音乐是个好地方,里面各个都是人才,特别是评 ...

  3. python爬虫---网易云音乐下载

    python爬虫爬取网易云音乐 1.实现功能 2.具体实现 1.搜索部分 2.下载歌曲 1.再次获取信息 2.下载 3.结语 Github完整代码获取:https://github.com/Lian- ...

  4. python爬虫网易云音乐评论再分析_爬取网易云音乐的评论后,竟有这种发现!

    原标题:爬取网易云音乐的评论后,竟有这种发现! 作者 | 志颖 责编 | 胡巍巍 用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条. 现在 ...

  5. python爬虫网易云音乐最热评论并分析_Python3实现爬虫抓取网易云音乐的热门评论分析(图)...

    这篇文章主要给大家介绍了关于Python3实战之爬虫抓取网易云音乐热评的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. ...

  6. python爬虫网易云音乐评论最多的歌_Python3实战之爬虫抓取网易云音乐的热门评论...

    前言 之前刚刚入门python爬虫,有大概半个月时间没有写python了,都快遗忘了.于是准备写个简单的爬虫练练手,我觉得网易云音乐最优特色的就是其精准的歌曲推荐和独具特色的用户评论,于是写了这个抓取 ...

  7. Python爬虫-网易云音乐自动化爬取下载

    文章目录 前言 爬取分析 完整代码 爬取效果 拓展代码 前言 上一篇简述了如何使用 Python 爬虫自动爬取CSDN博客排行榜数据并自动整理成Excel文件,这篇文章来看看如何自动化爬取网易云音乐的 ...

  8. python爬虫----网易云音乐歌曲爬取并存入Excel

    因为数据要存入Excel中,所以首要目标是找个办法将数据能够存入excel中 经过在网上一番搜索后,发现用python里的xlwt模块可以比较容易的解决 一.准备工作 1.安装xlwt模块: 可以看h ...

  9. python爬虫网易云音乐许巍的漫步制作热门点赞柱状图云词

    喜欢许巍的一些歌曲,真实而洒脱,那就爬虫玩会.获取数据用到了requests,绘制柱状图时用到了pyecharts,制作云词用到了wordcloud. 打开网易云音乐,找到许巍的漫步,按F12,让后再 ...

最新文章

  1. 在文件中查找指定字符串
  2. 【学习笔记】python - pyecharts
  3. 关于Qt的三种协议以及是否收费
  4. python学习day06--01
  5. 一张图读懂阿里巴巴一站式研发协同云——云效
  6. .NET 生态系统的蜕变之 .NET 6
  7. vmware 克隆centos 6.4网卡不识别
  8. Vue中$nextTick的理解
  9. MTK 驱动 (70)---MTK Projiectconfig.mk文件详细解释
  10. vue组件内数值做watch监听,首次监听不到的问题
  11. 安川机器人外部急停信号点不开_安川机器人示教器常见故障维修方法
  12. 《亲密关系》笔记(1)
  13. 图像算法---白平衡AWB
  14. Qualcomm平台下基于QSEE的指纹识别方案移植之五多厂商兼容方案
  15. CRM 建设方案(01):CRM基础
  16. VS2017 如何连接mysql数据库依赖的驱动msi
  17. CSS 弹性盒子布局详解
  18. 12、Stay_Hungry__Stay_Foolish(译文)
  19. 《算法艺术与信息学竞赛》题目-提交方式对照表 [转]
  20. 使用 JSTL SQL 标签的JSP CRUD增删改查

热门文章

  1. *VWRITE 命令应该注意的事项
  2. 华为手机助手更新失败的解决方案
  3. Navicat 密码加密算法
  4. vue-lazyload 简单使用
  5. 因计算机丢失d3dx9-30,win10安装游戏或软件后发现d3dx9_30.dll丢失打不开怎么办
  6. 打包的@font-face包
  7. SAP HR技术系列之一:e-HR,不只是看起来很美
  8. 2022年[最新]泰晤士高等教育世界大学声誉排名(完整版)
  9. mw313r 虚拟服务器,水星mw313r路由器怎么无线桥接
  10. 推荐个swf转gif工具“GifCam”