声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!
前言
目标网址:aHR0cHM6Ly94eXEuY2JnLjE2My5jb20vY2dpLWJpbi94eXFfb3ZlcmFsbF9zZWFyY2gucHk/YWN0PXNob3dfb3ZlcmFsbF9zZWFyY2hfbGluZ3NoaQ==
页面分析
点击搜索,在接口出看到这么些密文
解析
直接走栈下断点跟吧,目测解密位置再这些地方,直接下第一个,往回跟
继续走起
跟了一会后,看到了我们要的数据,之后就继续往里跟
r然后找到加密位置抠出来即可了
总结
这是之前不用登入的版本,现在是需要登入的
# -*- coding: utf-8 -*-
'''
@File: run.py
@SourceUrl:
@Author: 阿J
@Date: 2021/7/26 14:04
@Software: PyCharm
@Desc:
'''
import requests,json
import execjs
headers = {
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36',
'Accept': '*/*',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'no-cors',
'Sec-Fetch-Dest': 'script',
'Referer': 'https://xyq.cbg.163.com/cgi-bin/xyq_overall_search.py?act=show_overall_search_lingshi',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
params = (
('callback', 'Request.JSONP.request_map.request_25'),
('_', '1627279253892'),
('act', 'recommd_by_role'),
('page', '1'),
('equip_level_min', '60'),
('equip_level_max', '160'),
('count', '15'),
('search_type', 'overall_search_lingshi'),
('view_loc', 'overall_search'),
)
with open('./code.js',encoding='utf8') as f:
ctx = execjs.compile(f.read())
response = requests.get('https://xyq.cbg.163.com/cgi-bin/recommend.py', headers=headers, params=params)
datas = json.loads(response.text[37:-1])
print(datas)
for data in datas['equips']:
print(data['equip_name'],ctx.call('dec_data',data['desc']),ctx.call('dec_data',data['other_info']))