Python实现解千千音乐网站中的JS加密算法

Posted 白又白学Python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现解千千音乐网站中的JS加密算法相关的知识,希望对你有一定的参考价值。

网络爬虫

网络爬虫,不知道大家是否有过了解?今天白又白给大家写个解千千音乐网站中的JS加密算法,如果有哪里不对的,还请大佬们指正。

想要和我一起学习爬虫的你,那你首先要掌握一些有关爬虫的基础知识,要知道什么是爬虫?数据是从哪里得来的?先了解一些基础的知识点才能开始真正学习爬虫呀。基础知识问题都是可以在网上查询到的,嘻嘻

\'Python实现解千千音乐网站中的JS加密算法_Python\'

我对爬虫的工作的理解就是模拟我们通过浏览器获取网页信息的过程,无外乎“发送请求—获得页面—解析页面—抽取并储存内容”从这个过程中,我们可以获取到的信息是,在爬虫工作中需要涉及到前端页面相关的知识,网络协议相关的知识,以及数据存储的相关知识。因此根据这个过程还需要进一步掌握更多的技术。

爬虫在互联网世界中有很多的作用,比如:数据采集\\抓取微博评论(机器学习舆情监控)\\抓取招聘网站招聘信息(数据分析、挖掘)\\新浪滚动新闻\\百度新闻网站\\软件测试\\爬虫之自动化测试\\虫师\\12306抢票\\网站上的投票\\网络安全\\短信轰炸\\web漏洞扫描等等一切有用好玩又有趣的用途。

\'Python实现解千千音乐网站中的JS加密算法_编程语言_02\'

进入正文

爬取目标

网站:​​千千音乐-大风吹 (taihe.com)​

\'Python实现解千千音乐网站中的JS加密算法_计算机_03\'

工具使用

开发工具:pycharm

开发环境:python3.7, Windows10

使用第三方库:requests,time, hashlib

重点学习的内容

sign参数加密

url请求参数拼接

时间戳的运用

页面分析

首先进入到音乐的播放页面 寻找播放地址

第一步:打开网页,鼠标右击点击检查,然后点击播放音乐

第二步:选择媒体接口

第三步:要定位到音乐播放的时候的接口,因为播放音乐的时候是有单独的接口

详细的看下图:

\'Python实现解千千音乐网站中的JS加密算法_网络爬虫_04\'

注意一下复制这个后缀 用来搜索 看看播放地址是在哪个接口里面有包含

\'Python实现解千千音乐网站中的JS加密算法_计算机_05\'

然后ctrl+f输入搜索的关键字

\'Python实现解千千音乐网站中的JS加密算法_编程语言_06\'

\'Python实现解千千音乐网站中的JS加密算法_网络爬虫_07\'

\'Python实现解千千音乐网站中的JS加密算法_计算机_08\'

sign生成位置在return 前面打上断点,具体看以下图片

\'Python实现解千千音乐网站中的JS加密算法_计算机_09\'

\'Python实现解千千音乐网站中的JS加密算法_计算机_10\'

注意加密位置md5加密算法,然后r是请求参数,所以seret上面申明的固定字符串。

\'Python实现解千千音乐网站中的JS加密算法_计算机_11\'

代码实现


import hashlib
import time
import requests


time1 = int(time.time())
r = f"TSID=T10046047408&appid=16073360&timestamp={time1}" + \'0b50b02fd0d73a9c4c8c3a781c30845f\'
byte_row = r.encode(\'utf-8\', \'ignore\')
md5 = hashlib.md5()
md5.update(byte_row)
sign = md5.hexdigest()

url = f\'https://music.taihe.com/v1/song/tracklink?sign={sign}&appid=16073360&TSID=T10046047408&timestamp={time1}\'
headers = {
\'user-agent\': \'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Edg/94.0.992.38\'
}
response = requests.get(url, headers=headers).json()
print(response)


\'Python实现解千千音乐网站中的JS加密算法_编程语言_12\'

我是白又白i,一名喜欢分享知识的程序媛❤️
感兴趣的可以关注我的公众号:白又白学Python【非常感谢你的点赞、收藏、关注、评论,一键三连支持】

以上是关于Python实现解千千音乐网站中的JS加密算法的主要内容,如果未能解决你的问题,请参考以下文章

Python实现解千千音乐网站中的JS加密算法

js加密代码问题,我在网站的一个js文件中看到这种加密代码,这是哪种类型的加密啊!有办法解吗?

python爬千千音乐

如何在 Python3 中解压缩使用 PKZIP 以外的算法加密的文件?

Node.js中不同加密算法的实现

华为OD机试真题 JS 实现简单的解压缩算法2023 Q1 | 200分