记录
起因
- 偶尔看到有淘宝官方出的买家秀照片墙
- 为了符合社会主义核心价值观我切换成了 书店
- 应广大网友号召,想把这些图片都抓下来,方便大家预览
过程
分析页面
- 从network找到加载页面里所有加载的资源
-
找到了与之有关的请求.
image -
该请求是 GET 请求,参数都在 URL 中
image -
接下来关注请求头
image
这时候祭出 postman 来模拟一下
-
很方便, URL 输入进去,会自动识别其中参数
image -
请求头处理也一样
image -
发送请求,成功得到json
image - 筛查必要请求参数,这时候,可以将参数和请求头,取消勾选,最后剩下必要参数
必要参数 | 备注 |
---|---|
appKey | 固定 12574478
|
t | 毫秒数(可固定) |
sign | 文后加密规则
|
data | 文后加密规则 中的 params_data
|
image
必要头部 |
---|
Cookie |
image
- 可以将请求参数中 data 进行 urldecode ,这样看的更加清晰,我直接拿控制台中的替换了
- cookie 也要进行筛选,找到必要的 key&value (以下是我挨个删除,留下最后必要的)
Cookie 必要key |
---|
_m_h5_tk |
_m_h5_tk_enc |
image
所有必要参数都找到了
- 通过分析参数内容,看到
sign
不是能看懂的,应该是通过加密的 - 在所有请求资源中找
sign
生成方法 -
过程就是挨个看,直接上结果了.
image
image -
可以看出对以下几个参数进行加密.可以加断点查看信息.
image
加密规则
let params = {
nodeId:'',
sellerId:sellerId,
pagination:{
direction:'1',
hasMore:'true',
pageNum:1,
pageSize:30,
}
};
let params_data = {
params: JSON.stringify(params),
cursor : 1,
pageNum : 1,
pageId: 5703,
env: '1'
}
params_data = JSON.stringify(params_data);
let sign = `${token}&${timestr}&${appKey}&${params_data}`
sign = md5(sign);