Python爬虫实战案例——第四例

news/2024/7/19 11:44:31 标签: python, 爬虫, java

文章中所有内容仅供学习交流使用,不用于其他任何目的!严禁将文中内容用于任何商业与非法用途,由此产生的一切后果与作者无关。若有侵权,请联系删除。

目标:网易云音乐歌单评论采集(初级逆向)

地址:aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvZGlzY292ZXIvcGxheWxpc3Q=

在这里插入图片描述

点击任意歌单进入页面开始分析

在这里插入图片描述

搜索评论内容找到评论所在的包

在这里插入图片描述

可以看到关键参数主要就是两个——paramsencSecKey

在这里插入图片描述

全局搜索encSecKey参数

在这里插入图片描述

按F8直到评论区开始加载(因为其他内容加载时使用的也是同一个加密算法,但是参数不同)

在这里插入图片描述

可以看到此时两个参数的生成方法已经能够生成调用

在这里插入图片描述

在这里我们可以看到几个参数的值,这些参数是作为入口函数调用时需要传入的

在这里插入图片描述

那么接下来就要去分析e,f,g三个参数是从何处生成而来。在当前js文件中定位到第二个encSecKey的搜索位置

在这里插入图片描述

在这里就可以看到入口处就是刚才定位到的d函数,所以window.asrsea函数中传递的参数依次为d函数中的形式参数d,e,f,g,打上断点来到console中测试输出不难发现这三个值都是固定值,所以就不用再去找其生成逻辑了。

在这里插入图片描述

接下来要做的就是将入口函数抠到本地生成两个目标参数,然后将其代入进行请求。初步js代码如下

function d(d, e, f, g) {
        var h = {}
          , i = a(16);
        return h.encText = b(d, g),
        h.encText = b(h.encText, i),
        h.encSecKey = c(i, e, f),
        h
    }

var d_data = '{"rid":"A_PL_0_26467411","threadId":"A_PL_0_26467411","pageNo":"1","pageSize":"20","cursor":"-1","offset":"0","orderType":"1","csrf_token":""}'
    ,e_data = "010001"
    ,f_data = "00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7"
    ,g_data = "0CoJUm6Qyw8W8jud"
d(d_data, e_data, f_data, g_data)

然后就是补函数补环境,缺什么补什么就可以了,补的时候需要注意每个代码块的顺序,nodejs中RSA算法可以使用crypto-js模块来实现,在当前执行环境下输入npm install crypto-js即可完成模块的安装

在这里插入图片描述

补完后执行代码结果如下

在这里插入图片描述

将d_data进行动态变化修改

{"rid":"A_PL_0_2065854146","threadId":"A_PL_0_2065854146","pageNo":"1","pageSize":"20","cursor":"-1","offset":"0","orderType":"1","csrf_token":""}

这个参数中的各个键值对不难分析,重复刚刚对网页的分析步骤就能够知道rid和threadId表示歌单的标识以及id组成,pageNo为页数,其它参数不用改动,所以要获取其他歌单的评论的话修改rid和threadId即可。

最终执行结果如下:

在这里插入图片描述

完整代码移步:https://gitee.com/shuailiuquan


http://www.niftyadmin.cn/n/5027111.html

相关文章

怎么把两首歌曲拼接在一起?

怎么把两首歌曲拼接在一起?音乐的美妙旋律能够陶冶人们的心灵,在日常生活和工作中,许多用户会使用各种歌曲来进行剪辑和制作。尤其在媒体行业工作的用户,每天都需要使用大量不同歌曲的片段,进行拼接和剪辑来进行视频制…

huggingface.co 下载模型文件,死活找不到文件,也没报其他错误。原来是多了个%号

这样写,就没问题: snapshot_download(local_dir/content/drive/MyDrive/chatRWKV/models/,repo_id"BlinkDL/rwkv-4-raven", allow_patterns"RWKV-4-Raven-3B-v12-Eng49%-Chn49%-Jpn1%-Other1%-20230527-ctx4096.pth") 但是这个文件…

【实战】H5 页面同时适配 PC 移动端 —— 旋转横屏

文章目录 一、场景二、方案三、书单推荐01 《深入实践Kotlin元编程》02 《Spring Boot学习指南》03 《Kotlin编程实战》 一、场景 一个做数据监控的单页面,页面主要内容是一个整体必须是宽屏才能正常展示,这时就不能用传统的适配方案了,需要…

算法通过村第七关-树(递归/二叉树遍历)黄金笔记|迭代遍历

文章目录 前言1. 迭代法实现前序遍历2. 迭代法实现中序遍历3. 迭代法实现后序遍历总结 前言 提示:在一个信息爆炸却多半无用的世界,清晰的见解就成了一种力量。 --尤瓦尔赫拉利《今日简史》 你是不是觉得上一关特别简单,代码少,背…

Mock数据:单元测试中的心灵鸡汤

在当今的软件开发领域,质量控制已经成为了一个不可或缺的环节。为了确保软件的稳定性和可靠性,开发者们投入了大量的时间和精力进行各种测试。其中,单元测试作为最基础的测试方法,其重要性不言而喻。然而,单元测试中的…

etcd之读性能主要影响因素

1、Raft模块-线性读ReadIndex-节点之间的RTT延时、磁盘IO 线性读时Follower节点首先会向Raft 模块发送ReadIndex请求,此时Raft模块会先向各节点发送心跳确认,一半以上节点确认 Leader 身份后由leader节点将已提交日志索引 (committed index) 封装成 Rea…

如何通过百度SEO优化提升网站排名(掌握基础概念,实现有效优化)

随着互联网的发展,搜索引擎优化(SEO)成为了网站优化中不可或缺的一部分。在中国,百度搜索引擎占据着主导地位,因此掌握百度SEO概念和优化技巧对网站的排名和曝光非常重要。 百度SEO排名的6个有效方法: 首…

主题配置和 消息发送(一)KafkaTemplate 的使用

一、主题 1.1、配置主题 在应用程序上下文定义一个 KafkaAdmin Bean, 它可以自动将主题添加到代理。通过这个Bean可以将 每一个新建的主题 Topic 添加到应用程序上下文中。下面是一个简单的示例:也可以创建 TopicBuilder 类,使用它创建 Bean 更加简单。 @Bean public Kafka…