声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

部分Python代码

cookies = {}

cp = execjs.compile(open('run.js', 'r', encoding='utf-8').read())
json_data = {
    'order': 'ASC',
    'sort': None,
    'page': 100,
    'pageSize': 21,
    'action': {
        'gameId': '7',
        'goodsCatalogueId': 6,
        'merchantMark': None,
        'keywords': [],
        'searchWords': [],
        'searchPropertyIds': [],
        'unionGameIds': [],
        'goodsSearchActions': [],
        'single4': 2164,
    },
}
result = cp.call('getData',json_data)
url = result['url']
header = result['header']
print(header)
# url = result['url']
print(url)
headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'PZOs': 'windows',
    'PZPlatform': 'pc',
    'PZTimestamp': str(header['Timestamp']),
    'PZVersion': '1.0.0',
    'PZVersionCode': '1',
    'Pragma': 'no-cache',
    'Random': str(header['Random']),
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'Sign': header['strMd5'],
    'Skey': 'CLIENT',
    'channelInfo': '{"channelCode":null,"tag":null,"channelType":null,"searchWord":"null"}',
    'x-oss-forbid-overwrite': 'true',
}
response = requests.post(
    url,
   cookies=cookies,
   headers=headers,
   data=data,
)
print(response.text)
cookies = {}

cp = execjs.compile(open('run.js', 'r', encoding='utf-8').read())
json_data = {
    'order': 'ASC',
    'sort': None,
    'page': 100,
    'pageSize': 21,
    'action': {
        'gameId': '7',
        'goodsCatalogueId': 6,
        'merchantMark': None,
        'keywords': [],
        'searchWords': [],
        'searchPropertyIds': [],
        'unionGameIds': [],
        'goodsSearchActions': [],
        'single4': 2164,
    },
}
result = cp.call('getData',json_data)
url = result['url']
header = result['header']
print(header)
# url = result['url']
print(url)
headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive',
    'Content-Type': 'application/json',
    'PZOs': 'windows',
    'PZPlatform': 'pc',
    'PZTimestamp': str(header['Timestamp']),
    'PZVersion': '1.0.0',
    'PZVersionCode': '1',
    'Pragma': 'no-cache',
    'Random': str(header['Random']),
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-site',
    'Sign': header['strMd5'],
    'Skey': 'CLIENT',
    'channelInfo': '{"channelCode":null,"tag":null,"channelType":null,"searchWord":"null"}',
    'x-oss-forbid-overwrite': 'true',
}

response = requests.post(
    url,
   cookies=cookies,
   headers=headers,
   data=data,
)
print(response.text)

结果

总结

  1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

更多推荐