上下观古今,起伏千万途。这篇文章主要讲述Python实现解千千音乐网站中的JS加密算法相关的知识,希望能为你提供帮助。
网络爬虫网络爬虫,不知道大家是否有过了解?今天白又白给大家写个解千千音乐网站中的JS加密算法,如果有哪里不对的,还请大佬们指正。
想要和我一起学习爬虫的你,那你首先要掌握一些有关爬虫的基础知识,要知道什么是爬虫?数据是从哪里得来的?先了解一些基础的知识点才能开始真正学习爬虫呀。基础知识问题都是可以在网上查询到的,嘻嘻
文章图片
我对爬虫的工作的理解就是模拟我们通过浏览器获取网页信息的过程,无外乎“发送请求—获得页面—解析页面—抽取并储存内容”从这个过程中,我们可以获取到的信息是,在爬虫工作中需要涉及到前端页面相关的知识,网络协议相关的知识,以及数据存储的相关知识。因此根据这个过程还需要进一步掌握更多的技术。
爬虫在互联网世界中有很多的作用,比如:数据采集\\抓取微博评论(机器学习舆情监控)\\抓取招聘网站招聘信息(数据分析、挖掘)\\新浪滚动新闻\\百度新闻网站\\软件测试\\爬虫之自动化测试\\虫师\\12306抢票\\网站上的投票\\网络安全\\短信轰炸\\web漏洞扫描等等一切有用好玩又有趣的用途。
文章图片
进入正文爬取目标
网站:??千千音乐-大风吹 (taihe.com)??
文章图片
工具使用
开发工具: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& 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加密算法】我是白又白i,一名喜欢分享知识的程序媛??
感兴趣的可以关注我的公众号:白又白学Python【非常感谢你的点赞、收藏、关注、评论,一键三连支持】
推荐阅读
- 自研python常用工具库(prestool)
- 小码匠数据科学之旅-猿门又多一枚女生
- Flutter的安装与设置(第一节)
- 高效动画实现原理-Jetpack Compose 初探索
- 手把手教你在Windows和Linux下安装Redis及了解Redis基本操作
- 重学“消息队列”,详解 RabbitMQ 消息确认机制!
- 微软想进一步禁售京瓷WP8.1原型机
- WP8.1 GDR2更新将只向新设备推送
- WP8.1 Update 2将不会向现有设备推送