淘宝x-sign算法解密分析
我在上一篇博客中给大家介绍了淘宝接口如何抓取,今天我来给大家介绍一下淘宝中校验参数x-sign的生成了,现在大家都知道只要有了x-sign基本上所有事情都可以干,包括但不仅限于商品信息,商品评价,秒杀活动等等
本文将演示如何获取淘宝商品评价信息,以iphone11为例 https://detail.tmall.com/item.htm?id=602659642364
抓包分析
通过charles手机抓包分析得出评价获取参数为如下几个:
url:http://guide-acs.m.taobao.com/gw/mtop.taobao.rate.detaillist.get/4.0
参数:data={“rateType”:"",“hasPic”:“1”,“foldFlag”:“0”,“pageNo”:“1”,“pageSize”:“10”,“auctionNumId”:“602659642364”}
头信息:有好多头信息,最重要的x-sign
签名接口调用
先放一个postman的图片 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUVSS7Nl-1588948458935)(https://github.com/Colinlyj210/x-sign/raw/master/w2.png?raw=true)]
使用说明:
- 图片中的请求地址并不是真实的请求地址,需要联系qq获取
- 发请求的时候必须是post json格式,可能需要协议头Content-Type:application/json
- token是接口校验参数,需要联系qq获取
- 获取签名的时候参数值都不需要转义,发请求抓数据的时候可能需要转义
- 所有参数必须使用
""
包起来,必须是字符串
参数说明
- data:就是参数data,为了避免出现编码问题,使用base64编码再传给我。编码前的data不要使用 urlencode.
- appKey:默认
"21646297"
,淘宝的appKey这个值是固定,如果是淘宝系其他app,这个值不一样 - pv:默认
"6.3"
,可选"6.2"
或者"6.3"
- useMiniWua:默认
"0"
需要x-mini-wua
的时候,设置为"1"
,当pv="6.3"
的时候,都是带x-mini-wua
返回值的 - useWua:默认
"0"
需要wua
的时候,设置为"1"
- `如有其他疑问,或者需要帮助的请联系qq: 946420414
返回值说明
返回值有x-sign,x-mini-wua,wua等 需要自己发请求测试,此处不再说明
python 版本demo
运行条件: python3 + requests 库
#!/usr/bin/env python
# coding:utf8
import os
import json
import requests
from urllib.parse import quote
from urllib.parse import quote_plus
from pprint import pprint
import base64
import time
def gwMtopApi(api, v, data, uid="0", sid="0", method='GET'):
utdid = "XLWkskakX5EDAEAuXveJ2YJy"
appKey = "21646297"
timestamp = time.time()
t = int(timestamp)
lat = "31.23238"
lng = "121.477733"
ttid = '701186@taobao_android_9.1.0'
deviceId = "Akuvfv2rDaTsFg2EJoAi5vGWE8wGLLTOVgrx3XMZ2a_M"
features = "27"
pageId = "https://market.m.taobao.com/app/tmall-wireless/group-card-618/pages/cc-shareItem?wh_ttid=native"
pageName = "market.m.taobao.com/app/tmall-wireless/group-card-618/pages/cc-shareItem"
# 数据使用base64做下编码
b64Data = base64.b64encode(data.encode("utf-8"))
pprint