今天用Python来实现一下酷狗JS逆向,实现搜索下载功能
1、环境使用
- Python 3.8
- Pycharm
2、模块使用
import hashlib --> pip install hashlib
import prettytable as pt --> pip install prettytable
import requests --> pip install requests
import time
import re
import json
3、实现思路
数据来源分析
1. 明确需求
- 明确采集网站以及数据内容:
网址: ku狗音乐网站
数据: 音频链接 / 音频名称
2. 抓包分析
- 通过开发者工具进行抓包分析
I. 打开开发者工具: F12 / 右键点击检查选择network <网络>
II. 刷新网页: 让数据内容重新加载一遍
III. 找音频链接地址: 点击媒体 <media>
音频链接:
IV. 分析音频链接地址, 是从哪里来的: 通过关键字搜索找到对应数据包位置
<数据包接口, 存储音频相关数据信息>
代码实现步骤
1. 发送请求, 模拟浏览器对于url地址发送请求
url地址: 分析得到数据包链接
2. 获取数据, 获取服务器返回响应数据
开发者工具: response <响应>
3. 解析数据, 提取我们需要的数据内容
数据: 音频链接 / 歌名
4. 保存数据, 保存音频内容
对于音频链接发送请求, 获取二进制数据内容 <音频内容>
4、源码展示
接来下看看源码
# 导入数据请求模块
import requests
# 导入正则表达式模块
import re
# 导入json
import json
# 导入制表模块
import prettytable as pt
import hashlib
import time
def md5_hash(date, word):
text = [
'NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt',
'appid=1014',
'bitrate=0',
'callback=callback123',
f'clienttime={
date}',
'clientver=1000',
'dfid=2UHYNz3g5BlC1P5mfH2586l5',
'filter=10',
'inputtype=0',
'iscorrection=1',
'isfuzzy=0',
f'keyword={
word}',
'mid=6cff5eec372eb97a1152cedd1d7c9fd5',
'page=1',
'pagesize=30',
'platform=WebFilter',
'privilege_filter=0',
'srcappid=2919',
'token=84444db71f298ea679c54e933acfdbe5065b7e0dd17b6bd7c2384cccde1f45c0'