哈有劲 发表于 2023-10-31 21:08:48

为了防止这个网站被各位爬崩,我连夜用Python下载了上万张壁纸(附网站JS逆

每当一个网站崩溃,在座的各位都有一定的责任。
https://img-blog.csdnimg.cn/0746d265a3104bd7a49e77bb329fd01a.png
当一个爬虫教程不火的时候还好,火起来了,就到了考验网站服务器的时候了,上一次茶杯狐就是这样,还好人家顽强…

 
好了话不多说,直接开始。
首先就是必备的软件和模块
环境使用
Python 3.8
Pycharm 
模块使用
requests --> pip install requests
execjs --> pip install PyExecJS
json 
前两个是第三方模块,要手动安装一下,键盘按住win + R 输入cmd 输入安装命令 pip install 模块名 (如果你觉得安装速度比较慢, 你可以切换国内镜像源)
代码部分
获取加密数据
# 请求头
headers = {
    'Referer':'https://bz.zzzmh.cn/',
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
# 请求链接
url = 'https://api.zzzmh.cn/bz/v3/getData'
for page in range(1, 11):
    # 请求参数
    data = {
      "size":24,
      "current":page,
      "sort":0,
      "category":0,
      "resolution":0,
      "color":0,
      "categoryId":0,"ratio":0
    }
    # 发送请求
    response = requests.post(url=url, json=data, headers=headers)
    # 获取响应json数据
    json_data = response.json()
    # 解析数据, 提取加密数据内容
    # 我还录制了详细的视频讲解,跟源码一起打包好了
    # 都放在这个抠裙了 872937351
    result = json_data['result'] 
通过python代码调用js代码获取明文数据
# 读取js代码文件
f = open('壁纸.js', 'r', encoding='utf-8').read()
# 编译js文件内容
js_code = execjs.compile(f)
# 调用js代码函数 --> 函数名传入字符串
data = js_code.call('_0xc7dd1', result)
# json字符串数据转成json字典数据
info = json.loads(data)
# 解析数据, 提取图片ID
for index in info['list']:
    # 提取图片ID
    img_id = index['i']
    # 图片链接: https://api.zzzmh.cn/bz/v3/getUrl/61ac5e440dac4d97a6624e05044c407421
    t = index['t']
    if t == 2:
      img_url = f'https://api.zzzmh.cn/bz/v3/getUrl/{img_id}21'
    elif t == 1:
      img_url = f'https://api.zzzmh.cn/bz/v3/getUrl/{img_id}11'
    # 获取图片数据内容
    img_content = requests.get(url=img_url, headers=headers).content
    with open(f'img\\{img_id}.jpg', mode='wb') as img:
      img.write(img_content)
    print(img_url) 
JS逆向部分
var window = global; function _0x4e58da(_0x3d1ba4) {    let _0x481fd7, _0x1af3a1, _0x7ac69c = '';    for (var _0x1074ee = 0x0; _0x1074ee < _0x3d1ba4['length'];)      _0x481fd7 = _0x3d1ba4,            _0x1af3a1 = 0x0,            _0x481fd7 >>> 0x7 === 0x0 ? (_0x7ac69c += String['fromCharCode'](_0x3d1ba4),                _0x1074ee += 0x1) : 0xfc === (0xfc & _0x481fd7) ? (_0x1af3a1 = (0x3 & _0x3d1ba4)
页: [1]
查看完整版本: 为了防止这个网站被各位爬崩,我连夜用Python下载了上万张壁纸(附网站JS逆