Python实现解千千音乐网站中的JS加密算法
Posted 白又白学Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现解千千音乐网站中的JS加密算法相关的知识,希望对你有一定的参考价值。
网络爬虫
网络爬虫,不知道大家是否有过了解?今天白又白给大家写个解千千音乐网站中的JS加密算法,如果有哪里不对的,还请大佬们指正。
想要和我一起学习爬虫的你,那你首先要掌握一些有关爬虫的基础知识,要知道什么是爬虫?数据是从哪里得来的?先了解一些基础的知识点才能开始真正学习爬虫呀。基础知识问题都是可以在网上查询到的,嘻嘻
我对爬虫的工作的理解就是模拟我们通过浏览器获取网页信息的过程,无外乎“发送请求—获得页面—解析页面—抽取并储存内容”从这个过程中,我们可以获取到的信息是,在爬虫工作中需要涉及到前端页面相关的知识,网络协议相关的知识,以及数据存储的相关知识。因此根据这个过程还需要进一步掌握更多的技术。
爬虫在互联网世界中有很多的作用,比如:数据采集\\抓取微博评论(机器学习舆情监控)\\抓取招聘网站招聘信息(数据分析、挖掘)\\新浪滚动新闻\\百度新闻网站\\软件测试\\爬虫之自动化测试\\虫师\\12306抢票\\网站上的投票\\网络安全\\短信轰炸\\web漏洞扫描等等一切有用好玩又有趣的用途。
进入正文
爬取目标
工具使用
开发工具:pycharm
开发环境:python3.7, Windows10
使用第三方库:requests,time, hashlib
重点学习的内容
sign参数加密
url请求参数拼接
时间戳的运用
页面分析
首先进入到音乐的播放页面 寻找播放地址
第一步:打开网页,鼠标右击点击检查,然后点击播放音乐
第二步:选择媒体接口
第三步:要定位到音乐播放的时候的接口,因为播放音乐的时候是有单独的接口
详细的看下图:
注意一下复制这个后缀 用来搜索 看看播放地址是在哪个接口里面有包含
然后ctrl+f输入搜索的关键字
sign生成位置在return 前面打上断点,具体看以下图片
注意加密位置md5加密算法,然后r是请求参数,所以seret上面申明的固定字符串。
代码实现
import hashlib
import time
import requests
time1 = int(time.time())
r = f"TSID=T10046047408&appid=16073360×tamp={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×tamp={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)
我是白又白i,一名喜欢分享知识的程序媛❤️
感兴趣的可以关注我的公众号:白又白学Python【非常感谢你的点赞、收藏、关注、评论,一键三连支持】
以上是关于Python实现解千千音乐网站中的JS加密算法的主要内容,如果未能解决你的问题,请参考以下文章
js加密代码问题,我在网站的一个js文件中看到这种加密代码,这是哪种类型的加密啊!有办法解吗?