网站首页 > 基础教程 正文
文章目录
- 前言
- 一、页面分析
- 二、_token解密
- 三、获取加密方法
- 四、请求源码
私信小编01即可获取大量Python学习资料
前言
这周事情有点多,还面试了一家公司,算是学有所成吧,工资比现在的多,不过我还会继续努力的,前几天找了几个逆向的网站都没解出来,头挺大,哎,都是JS太复杂得问题,扣来扣去扣不全代码,得要补一补JS。
这次带来的是某团没事商铺数据的获取,主要是一个_token的解密JS
地址连接:aHR0cHM6Ly9oei5tZWl0dWFuLmNvbS9tZWlzaGkv
一、页面分析
打开开发者模式抓取数据链接,这个请求的主要加密参数是_token,uuid可以从源码获取
二、_token解密
搜索_token,出来一个直接点进去,再接着搜索,可以找到加密位置,下断点重新请求
调试进去,可以看到主要的加密函数
最后一步,就是要扣他的加密JS了,我尝试着扣了一下,哎,不太行,我还是太菜了,抠不出完整的,怎么办???
三、获取加密方法
这个时候哦怎么办,直接把他的JS代码直接抠出来,是个匿名函数,里面有三个参数
然后其中_token加密参数是第一个字典参数的key为17的方法里
我们在外面声明个全局变量 var data;
最后我们执行下,可以看到_token已经出来了
四、请求源码
import requests,json,execjs
with open('./new.js',encoding='utf-8') as f:
js_func = execjs.compile(f.read())
_token = js_func.eval('data')
print(_token)
headers = {
'Connection': 'keep-alive',
'Accept': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Referer': 'https://hz.meituan.com/meishi/pn2/',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
params = (
('cityName', '杭州'),
('cateId', '0'),
('areaId', '0'),
('sort', ''),
('dinnerCountAttrId', ''),
('page', '1'),
('userId', ''),
('uuid', 'dc27c2b094a34e0a9c63.1605940296.1.0.0'),
('platform', '1'),
('partner', '126'),
('originUrl', 'https://hz.meituan.com/meishi/pn1/'),
('riskLevel', '1'),
('optimusCode', '10'),
('_token', _token),
)
response = requests.get('https://hz.meituan.com/meishi/api/poi/getPoiList', headers=headers, params=params)
js_data = json.loads(response.text)
print(response.text)
for data in js_data['data']['poiInfos']:
print(data['title'],data['address'],data['poiId'])
猜你喜欢
- 2024-12-03 《深入理解javascript原型和闭包系列》 知识点整理
- 2024-12-03 Pyodide:将 Python 引入浏览器
- 2024-12-03 盘点全网最火的 10+ JavaScript引擎!QuickJS 只是其一!
- 2024-12-03 人均瑞数系列,瑞数 5 代 JS 逆向分析
- 2024-12-03 JavaScript黑科技:隐秘执行
- 2024-12-03 深入理解javascript--笔记
- 2024-12-03 利用Python突破大型网站JavaScript反爬虫加密技术
- 2024-12-03 Eval加密的终极用法
- 2024-12-03 渗透技巧|当爆破遇到JS加密
- 2024-12-03 深入理解JS:var、let、const的异同
- 最近发表
-
- 在使用Bootstrap吗?快来看看如何使用 Bootswatch 主题吧
- 50个HTML5免费的Bootstrap模板 :下
- 定制你的bootstrap之--修改less文件1
- BootstrapBlazor :使用 .NET 生成交互式客户端 Web UI 的框架
- React与使用Bootstrap5模态框的注意事项
- 如何引用bootstrap没有的字体图标
- 10个超酷炫Bootstrap HTML & CSS UI工具包
- Bootstrap自举电路工作原理讲解(自举电路的原理)
- 为何 BootstrapVue 能成为 Vue 前端框架顶流?
- 新增 创意布局企业网络服务CSS模板 bootstrap 模板
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)