逆向|极简壁纸|拼接请求url

2025-04-16
逆向地址:aHR0cHM6Ly9iei56enptaC5jbi9pbmRleA==
获取壁纸很简单,很容易就可以得到结果:
{“code”:0,“message”:“success”,“data”:{“currPage”:3,“list”:[{“i”:“0f71a6bbac0948b68360f9c33b27afa0”,“w”:5120,“h”:1440,“t”:2},{“i”:“c390ca55880411ebb6edd017c2d2eca2”,“w”:4000,“h”:2588,“t”:2},…
这里的字段i就是壁纸对应的url的字段,对应的url就是:
https://api.zzzmh.cn/v2/bz/v3/getUrl/{i字段}20
需要注意就是url那里需要多加字符串"20"
然后这里的地址就是请求的图片的地址,这很容易,但是请求了之后就会发现,这里拿到的图片数据并不是高清的图片,继续分析发现,

在这里插入图片描述
在这里插入图片描述
要拿到高清的图片数据,需要分析auth_key参数
具体需要请求的接口为:
https://cdn2.zzzmh.cn/wallpaper/origin/
5268d877a2a04864b36b4961ab793f4f.jpg/fhd?
auth_key=1746374400-dd47a3dc2710906622f2500e917285d2aa4fe38b-0-6f7b4f9aa5c155aa12a2e16b4cdd8916

需要解决的就是auth_key参数

然后下一个/fhd断点 发现不行,那就直接从启动器进去,下一个断点,然后打开图片.尝试寻找auth_key参数生成的位置.但是后面我们仔细分析这个请求,会发现请求重定向了.

在这里插入图片描述

然后我们再仔细分析请求的参数地址: 发现其实请求的地址就是:
f"https://api.zzzmh.cn/v2/bz/v3/getUrl/{i的值}{t的值}1"

在这里插入图片描述
重定向地址

最终的结果如下:

import requests
import json


headers = {
    "accept": "application/json, text/plain, */*",
    "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
    "cache-control": "no-cache",
    "content-type": "application/json;charset=UTF-8",
    "origin": "https://bz.zzzmh.cn",
    "pragma": "no-cache",
    "priority": "u=1, i",
    "referer": "https://bz.zzzmh.cn/",
    "sec-ch-ua": "\"Microsoft Edge\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
    "sec-ch-ua-mobile": "?0",
    "sec-ch-ua-platform": "\"Windows\"",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-site",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"
}
url = "https://api.zzzmh.cn/v2/bz/v3/getData"


def download_image(image_list):
    
    for image in image_list:
        name = image["i"]
        t = image["t"]
        url = f"https://api.zzzmh.cn/v2/bz/v3/getUrl/{name}{t}1"
        print(url)
        response = requests.get(url, headers=headers)
        # 解析 下载二进制图片数据
        image_data = response.content
        # 保存图片到本地
        with open(f"./07_极简壁纸/bizhi/{name}.jpg", "wb") as f:
            f.write(image_data)    

def get_request(pageIndex):
    data = {
    "size": 24,
    "current": pageIndex,
    "sort": 0,
    "category": 0,
    "resolution": 0,
    "color": 0,
    "categoryId": 0,
    "ratio": 0
    }
    data = json.dumps(data, separators=(',', ':'))
    response = requests.post(url, headers=headers, data=data)

    data_list = response.json()
    image_list = data_list["data"]["list"]
    print(image_list)
    # 保存为json文件
    # with open(f"./07_极简壁纸/images/image_list_{pageIndex}.json", "w", encoding="utf-8") as f:
    #     json.dump(image_list, f, ensure_ascii=False, indent=4)
    download_image(image_list)
    
    
    



if __name__ == "__main__":
    
    for i in range(2,3):
        get_request(i)
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值