python爬虫之JS逆向基础小案例:网抑云数据获取

news2025/1/15 17:24:30

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

所用软件

  • 解释器: python 3.8

  • 编辑器: pycharm 2022.3

使用的模块

第三方模块:

  • requests >>> 数据请求

  • execjs >>> pip install pyexecjs

内置模块(无需安装):

  • nodejs

模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)

JS逆向的基础

什么是逆向?
    https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token=40b2ff585aa4532e59f66bf2ff3c3c4b
1. 先去测试一下接口能不能正常请求拿到数据
2. 删参数测试
3. 开始分析参数的生成
    a. 找到 加密函数入口 window.asrsea
    b. 分析是否为标准的加密 aes rsa des
    c. 假设不是标准的加密 是网易云专门实现的一套加密(手扣代码)
4. python调用js代码 实现加密参数的构建 以及请求的发送

代码展示

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import requests
import execjs


f = open('demo.js').read()
ctx = execjs.compile(f)
headers = {
    'Cookie': 'NMTID=00OCF57eMw7gjtHrkGxqZ7siinxV-IAAAGK1so-IQ; _ntes_nnid=26c70b0143c8e23610c54ff11079e1b2,1695820693625; _ntes_nuid=26c70b0143c8e23610c54ff11079e1b2; WEVNSM=1.0.0; WNMCID=hjvrqg.1695820693938.01.0; WM_TID=5HI1Ko6aOmlEVFVVQRKVyPYt4Zl0AfpQ; ntes_utid=tid._.LGEbSC8WPNJAQlVFAAPFlTdItnXEX3qn._.0; sDeviceId=YD-YNCJ3o0UbKBAU1VRBUaAhFmRbg7QtdJU; __snaker__id=Ux0jj3fJmpH6D5Fl; YD00000558929251%3AWM_TID=LyneRZ7oPElFVEVRFQLEzaJs4dymK3j%2B; __remember_me=true; ntes_kaola_ad=1; YD00000558929251%3AWM_NI=K3XHAVs1RKYu%2B8XnyUtpOw5rEkrkNUMtdFT7fROQFH3KALyTH1sduuIFb%2B0r%2BZY7WXja96%2BbAaSquHY24c4nDdmh7mcywoEf2flxd7s%2FLO3lG7KaWHTT748HeDO9Tl3qYzU%3D; YD00000558929251%3AWM_NIKE=9ca17ae2e6ffcda170e2e6eeb4cc7cb792a0dae1748e8e8fb6d44f969b9e87d867b6f1ffa3e96693b6e5b9c42af0fea7c3b92a89ed98a9c45eb1ef9eacdc7fe9e8988ffc5fb8b08198b87a87b5be8ccd5f8facaca7d73da68e81b2c544f1958fadfc608cefbd85f87f8b9aaeccb37ae98697d8d654aabff7d7aa6a83bf9d92f8449beefc84b76688bca389b667a1a7b990c86ef2baa499e73db1f184b0b26885e98582d644988cf9d5bb44a79c81dad768f1af979bd837e2a3; __csrf=40b2ff585aa4532e59f66bf2ff3c3c4b; _iuqxldmzr_=32; WM_NI=T%2FfWtSNjvtGAkooXecvj4sWvbkyf6Tuab7BWwxWzRI3Dfy9KKtHLxya99VezrA4MobslVEKsFwp9yMMNW5u3EyY4O67tvSfO6wRtr99p7vM%2FAAoq2YDMALydvlx6IFYzOUs%3D; WM_NIKE=9ca17ae2e6ffcda170e2e6eeccf95ef294e1a2ef669a868ba7c85b929f9b87d533a3e9b78df74b8cb0a5d7e42af0fea7c3b92a98f1aab8f7598eb6ba95c64ba9b1a1b9e869b6b6fc94d67ea2b5b787b560b7bfaed8c15db5a8999bd143f19caa9abc4189ac88adfb73a3e7f7b7e872b29ffcaeee6ab1b49aa6ca7986a9c0dafc478f9299d6f83987a797d5ce3ef5acbab4e545f6a99e95f133fbb0f997d025839fa192b15388938fadfc70b6b4b8d7cc4e9ba681b6f237e2a3; MUSIC_U=0016948227D9057DB55CACF7EE3BC6E54D557C4B9FFEC4C17923B93826003DBD522B4FA6B555D599D4BC6B0CCF34750B4E3FC645ED0D801C889E6AF1EA5DA4EA50DB331FDC6EE75563659E0676475FB9850401DA82B8BC28C14B7BF05203E0616449D4E2F9F483C7C0D7CC918C70C7DD51DF718B499955ED7CEC959EE76D903C7EF35D3432F3DB041B3FB10EC0C476C014C9CFC5C10EA7CA499E5027795737D198E7F8B98DABB1201E4D9EFCA77B4769CAF563F3030B7986BF873B511FFA6A376D9C8DB915D84535A1B7F4675D2AD4952ACE513F07B1201713F6C43049D059190158ADC84A1516BA6744FE7039811EA6978F537A16A9AB70ADBA37A9B4F157A5C73E143B2654D881381C5713CD2757DB36C3DE6FB88F6BBDB7FE0AC8CAFA1FD54BC65B9D9ACC5E78089DDB58E189FCB3973E4637861EDE12C381286EBFD8F95FCD8347B08A6F9890B31BB572CE9292571FC39E812C97F8BBA3A2BB651E2D38113C; __csrf=e73e77a7342b7f378110fc1c244de309; gdxidpyhxdE=UHX93r7e4gTV2EkbzuMp79%2Fw%2Bm5pUKteGXt5G9PlS2Kt6e17Ids34oUgYhaLbf7li2xpL6O07oS7cv5%2BNZuwDumu4hpdEszL%2FTzN5qszjR1Gi8SaW9Kb8ScH%2FG8blJ7KZXi1iN4uZRfXhuM0pUElLV5XAKZ4psog3JUx%2BwqyjS2Tkx1O%3A1705068638530; JSESSIONID-WYYY=NGXaEmDtw5xDgaOKczM%2FINu%2BGToHjDIlOhS5drpsXelEgFCyUf2cwWMU9O%2FaAGXipHp3FEmtqljGfSHD2vXvH4kWitnSZnd8hoXTRpkJsXFbFxK6t5rcPGC87jCiNd35c7vcEh7cAJJMo1qK3CpbBId7wyM77I5YO1aTZWgauznHNADs%3A1705130177139; playerid=66893040',
    'Referer': 'https://music.163.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
mid = '2116714805'
result = ctx.call('sdk', mid)
data = {
    'params': result['encText'],
    'encSecKey': result['encSecKey']
}
url = 'https://music.163.com/weapi/song/enhance/player/url/v1'
response = requests.post(url=url, headers=headers, data=data)
print(response)
print(response.text)

完整源码和视频讲解我都打包好了,直接文末名片自取~

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1401133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2017年认证杯SPSSPRO杯数学建模B题(第一阶段)岁月的印记全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 跨年龄人脸识别模型的建立与分析 B题 岁月的印记 原题再现: 对同一个人来说,如果没有过改变面容的疾病、面部外伤或外科手术等经历,年轻和年老时的面容总有很大的相似性。人们在生活中也往往能够分辨出来两…

HTML JavaScript 数字变化特效

效果 案例一&#xff1a;上下滚动 案例二&#xff1a;本身变化 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><met…

debian12.4配置

文章目录 debian12.4配置概述笔记将非root用户添加到sudo组更换国内源配置ssh的客户端访问END debian12.4配置 概述 在虚拟机中装了一个debian12.4, 想配置ssh客户端连接, 出了问题. 配置乱了, 还好长了个心眼, 做了快照. 发现2个问题: debian12.4默认安装完, 有ssh, 先检查…

【Linux对磁盘进行清理、重建、配置文件系统和挂载,进行系统存储管理调整存储结构】

Linux 调整存储结构 前言一、查看磁盘和分区列表二、创建 ext4 文件系统&#xff0c;即&#xff1a;格式化分区为ext4文件系统。1.使用命令 mkfs.ext4 (make file system)报错如下&#xff1a;解决办法1&#xff1a;&#xff08;经测试&#xff0c;不采用&#xff09;X解决办法…

【PICO】【Unity】【VR】如何对打包后的PICO项目有效Debug

【背景】 PICO项目打包后再运行就看不到Console了。当然,会有各类专业的Debug工具。 有一类Debug的工具是Preview形式下展示Debug信息,但是发现Preview成功不见得打包也成功。 打包后也会有一些Debug工具,不过这里我给出自己的简单解决办法。 【解决方案】 Unity Console…

SQL慢语句执行的很慢,如何分析优化呢,(如何优化的呢?)

慢查询出现的情况&#xff1a; SQL执行慢如何解决&#xff1f; 可以采用MySQL自带的分析工具Explain。 通过key和key_len检查是否命中了索引&#xff08;如果你已经添加了索引&#xff0c;还可以判断索引是否失效&#xff09;通过type字段查看SQL是否有进一步优化的空间&#…

JavaScript 之 promise

一、异步任务的处理 封装和调用不是同一个人&#xff0c;不清楚如何调用设计者不好设计&#xff0c;调用者调用很麻烦从一个实际的例子来作为切入点&#xff1a; 调用一个函数&#xff0c;这个函数中发送网络请求&#xff08;可以用定时器来模拟&#xff09;如果发送网络请求成…

flutter跨平台开发模板,继承get和dio,实现全局loading和快速更改名称和图标icon

flutter_windows 一个跨平台的flutter开发模板&#xff0c;使用流行的get来管理路由&#xff0c;使用getx来管理数据状态&#xff0c;并且配置了国际化支持。使用dio来管理网络请求&#xff0c; 使用shared_preferences实现本地临时数据存储&#xff0c;并且实现了全局loading…

【漏洞复现】Hikvision综合安防管理平台env信息泄漏漏洞

Nx01 产品简介 Hikvision&#xff08;海康威视&#xff09;是一家在中国颇具影响力的安防公司&#xff0c;其网络摄像头产品在市场上占据了相当大的份额。综合安防管理平台基于“统一软件技术架构”理念设计&#xff0c;采用业务组件化技术&#xff0c;满足平台在业务上的弹性扩…

【GitHub项目推荐-开源的任务管理工具】【转载】

推荐一个开源的任务管理工具&#xff0c;该工具会提供各类文档协作功能、在线思维导图、在线流程图、项目管理、任务分发、即时 IM&#xff0c;文件管理等等。该开源项目使用到 Vue、Element-UI、ECharts 等技术栈。 开源地址&#xff1a;www.github.com/kuaifan/dootask 预览地…

【leetcode】回溯总结

本文内容来自于代码随想录https://www.programmercarl.com/ 思想 一棵树中的纵向遍历结束回到上一层的过程&#xff0c;比如&#xff1a; 这个过程通常回伴随恢复现场的过程。 模板 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&#xff1a;本层集…

数据结构:链式队列

队列是限制在两端操作进行插入操作与删除操作的线性表&#xff0c;允许进行插入操作的一端称为"队尾"&#xff0c;允许进行删除操作的一端称为“队头”。当线性表中没有元素时&#xff0c;称为“空队”。队列的特点是先进先出。 队列两种规定&#xff1a; 1、front…

应用层—HTTP详解(抓包工具、报文格式、构造http等……)

文章目录 HTTP1. 抓包工具的使用1.1 配置信息1.2 观察数据 2. 分析 https 抓包结果3. HTTP请求详解3.1 认识 URL3.1.1 URL 基本格式3.1.2 查询字符串 (query string)3.1.3 关于 URL Encode 3.2 认识 http 方法3.2.1 [经典问题] Get 和 Post 主要的区别是什么&#xff1f;&#…

Pytest 结合 Allure 生成测试报告

测试报告在项目中是至关重要的角色&#xff0c;一个好的测试报告&#xff1a; 可以体现测试人员的工作量&#xff1b; 开发人员可以从测试报告中了解缺陷的情况&#xff1b; 测试经理可以从测试报告中看到测试人员的执行情况及测试用例的覆盖率&#xff1b; 项目负责人可以通过…

Qt拖拽事件简单实现

1.相关说明 重写resizeEvent(这个按需重写)、dragEnterEvent(拖拽事件函数)、dropEvent(放下事件函数)&#xff0c;可以将本地图片拖拽到label标签中 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QDragEnterEvent>…

5G_系统同步机制(八)

BBU和RRU的同步机制 为什么要做到系统同步 在TDD模式下工作时&#xff0c;为了避免相邻小区之间的干扰&#xff0c;近距离的所有gNB在任何时间点都必须具有相同的传输方向(DL或UL)。这样做的必要条件是在BTS之间同步SFN (System Frame number)和time Slot。此外&#xff0c;由…

c++程序的内存模型,new操作符详解

目录 内存四区 程序运行前 代码区 全局区 程序运行后 栈区 堆区 new操作符 创建一个数 创建一个数组 内存四区 不同区域存放不同的数据&#xff0c;赋予不同的生命周期&#xff0c;让我们更加灵活的编程 程序运行前 程序运行前就有代码区和全局区 代码区 程序编…

STM32标准库开发——PWM驱动代码

PWM驱动初始化代码 使能定时器二时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);设置定时器时钟源 TIM_InternalClockConfig(TIM2);配置定时器二的时基单元 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct; TIM_TimeBaseInitStruct.TIM_ClockDivisionTIM_CKD_D…

java面试——juc篇

一、线程基础 1、进程与线程的区别&#xff1f;&#xff08;⭐⭐⭐&#xff09; 进程&#xff1a;进程是程序的一次执行过程&#xff0c;是操作系统资源分配的基本单位。程序由指令和数据组成&#xff0c;指令要运行就得加载至CPU&#xff0c;数据要读写就得加载至内存&#…

【嘉立创EDA-PCB设计指南】4.模块化布局

前言&#xff1a;本文对本专栏中的【嘉立创EDA-PCB设计指南】前面绘制的原理图进行模块化布局&#xff0c;首先进行预布局&#xff08;将每个模块放一起&#xff09;&#xff0c;然后进行精细化布局&#xff08;按照原理图来精细化布局&#xff09;。 目录 模块化预布局 模块…