淘宝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)]

使用说明:

  1. 图片中的请求地址并不是真实的请求地址,需要联系qq获取
  2. 发请求的时候必须是post json格式,可能需要协议头Content-Type:application/json
  3. token是接口校验参数,需要联系qq获取
  4. 获取签名的时候参数值都不需要转义,发请求抓数据的时候可能需要转义
  5. 所有参数必须使用""包起来,必须是字符串

参数说明

  1. data:就是参数data,为了避免出现编码问题,使用base64编码再传给我。编码前的data不要使用 urlencode.
  2. appKey:默认"21646297",淘宝的appKey这个值是固定,如果是淘宝系其他app,这个值不一样
  3. pv:默认"6.3",可选"6.2"或者"6.3"
  4. useMiniWua:默认"0" 需要x-mini-wua的时候,设置为"1",当pv="6.3"的时候,都是带x-mini-wua返回值的
  5. useWua:默认"0" 需要wua的时候,设置为"1"
  6. `如有其他疑问,或者需要帮助的请联系qq: 946420414

返回值说明

返回值有x-sign,x-mini-wua,wua等 需要自己发请求测试,此处不再说明

python 版本demo

运行条件: python3 + requests 库

#!/usr/bin/env python
# coding:utf8import os
import json
import requests
from urllib.parse import quote
from urllib.parse import quote_plus
from pprint import pprint
import base64
import timedef 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(b64Data)postData = {"utdid": utdid,"uid": uid,# 设备id"deviceId": deviceId,"appKey": appKey,"x-features": features,"ttid": ttid,"location": lng + ',' + lat,"v": v,"sid": sid,# 时间戳 10位数"t": t,"api": api,"useWua": "1","data": b64Data,"pageId": pageId,"pageName": pageName}pprint(postData)result = getTaobaoSigns(postData)jobj = json.loads(result)dataJobj = jobj["data"]pprint(dataJobj['x-mini-wua'])body = "data=" + quote_plus(data)requestUrl = "https://guide-acs.m.taobao.com/gw/{0}/{1}/".format(api, v)proxies = Noneheaders = {"x-appkey": appKey,"x-devid": deviceId,"x-ttid": quote_plus(ttid),"x-sign": quote_plus(dataJobj['x-sign']),"x-umt": quote_plus(dataJobj['x-umt']),"x-mini-wua": quote_plus(dataJobj['x-mini-wua']),"x-sgext": dataJobj['x-sgext'],"x-t": str(t),"x-location": quote_plus("{0},{1}".format(lng, lat)),"x-app-ver": "9.1.0","f-refer": "mtop","x-nq": "WIFI","x-nettype": "WIFI","x-region-channel": "CN","f-refer": "mtop","content-type": "application/x-www-form-urlencoded;charset=UTF-8","A-SLIDER-Q": "appKey%3D21646297%26ver%3D0","x-bx-version": "6.4.11","x-page-url": quote_plus(pageId),"a-orange-q": "appKey=21646297&appVersion=9.1.0&clientAppIndexVersion=1120191120160145573&clientVersionIndexVersion=0","x-page-name": pageName,"x-pv": "6.3","x-c-traceid": "XLWkskakX5EDAEAuXveJ2YJy1574237572826005219386","x-features": features,"x-app-conf-v": str(19),"x-utdid": utdid,"c-lauch-info": "0,0,1574237572825,1574233432783,3","User-Agent": "MTOPSDK%2F3.1.1.7+%28Android%3B8.1.0%3BHuawei%3BNexus+6P%29","Connection": "Keep-Alive","Accept-Encoding": "gzip","x-bx-version": "6.4.11"}if uid != "":headers["x-uid"] = uidheaders["x-sid"] = sidif method == 'GET':requestUrl = "https://guide-acs.m.taobao.com/gw/{0}/{1}/?{2}".format(api, v, body)pprint(requestUrl)result = requests.get(requestUrl, timeout=20, headers=headers, proxies=proxies, verify=False)else:result = requests.post(requestUrl, data=body, headers=headers, timeout=20, proxies=proxies, verify=False)pprint(result)if result.status_code == requests.codes.ok:pprint(result.text)def getTaobaoSigns(arr):pprint(arr)requestURL = "http://127.0.0.1:8080/fakeTbParam"headers = {"allow_access": "true","Content-Type": "application/x-www-form-urlencoded"}result = requests.post(requestURL, data=arr, timeout=20, headers=headers)pprint(result.text)dataStr = ""if result.status_code == requests.codes.ok:dataStr = result.textpprint(dataStr)return dataStrdef getTaobaoDetail():data = '''{"LBS":"{\\"SG_TMCS_1H_DS\\":\\"{\\\\\\"stores\\\\\\":[]}\\",\\"SG_TMCS_FRESH_MARKET\\":\\"{\\\\\\"stores\\\\\\":[]}\\",\\"TB\\":\\"{\\\\\\"stores\\\\\\":[{\\\\\\"code\\\\\\":\\\\\\"185784179\\\\\\",\\\\\\"bizType\\\\\\":\\\\\\"2\\\\\\",\\\\\\"type\\\\\\":\\\\\\"1\\\\\\"}]}\\",\\"TMALL_MARKET_B2C\\":\\"{\\\\\\"stores\\\\\\":[{\\\\\\"code\\\\\\":\\\\\\"105\\\\\\",\\\\\\"bizType\\\\\\":\\\\\\"REGION_TYPE_CITY\\\\\\",\\\\\\"addrId\\\\\\":\\\\\\"8813741971\\\\\\",\\\\\\"type\\\\\\":\\\\\\"CHOOSE_ADDR\\\\\\"},{\\\\\\"code\\\\\\":\\\\\\"107\\\\\\",\\\\\\"bizType\\\\\\":\\\\\\"REGION_TYPE_REGION\\\\\\",\\\\\\"addrId\\\\\\":\\\\\\"8813741971\\\\\\",\\\\\\"type\\\\\\":\\\\\\"CHOOSE_ADDR\\\\\\"}]}\\",\\"TMALL_MARKET_O2O\\":\\"{\\\\\\"stores\\\\\\":[{\\\\\\"code\\\\\\":\\\\\\"233930143\\\\\\",\\\\\\"bizType\\\\\\":\\\\\\"DELIVERY_TIME_ONE_HOUR\\\\\\",\\\\\\"addrId\\\\\\":\\\\\\"8813741971\\\\\\",\\\\\\"type\\\\\\":\\\\\\"CHOOSE_ADDR\\\\\\"}]}\\"}","URL_REFERER_ORIGIN":"https://s.m.taobao.com/h5entry?utparam=%7B%22ranger_buckets_native%22%3A%22tsp2189_21618_normaluser01%22%7D&spm=a2141.1.searchbar.searchbox&scm=1007.home_topbar.searchbox.d&_navigation_params=%7B%22needdismiss%22%3A%220%22%2C%22animated%22%3A%220%22%2C%22needpoptoroot%22%3A%220%22%7D","_navigation_params":"{\\"needdismiss\\":\\"0\\",\\"animated\\":\\"0\\",\\"needpoptoroot\\":\\"0\\"}","ad_type":"1.0","apptimestamp":"1575125141","areaCode":"CN","brand":"google","canP4pVideoPlay":"true","countryNum":"156","device":"Nexus 6P","editionCode":"CN","filterEmpty":"true","filterUnused":"true","from":"suggest_all-query","homePageVersion":"v6","imei":"867686023424128","imsi":"09647Nexus617c3","info":"wifi","isBeta":"false","itemfields":"commentCount,newDsr","layeredSrp":"true","n":"10","needTabs":"true","network":"wifi","new_shopstar":"true","page":"2","pos":"0_0","q":"iphone11","rainbow":"14071,14070,12994,14154","referrer":"com.taobao.taobao","schemaType":"all","scm":"1007.home_topbar.searchbox.d","searchFramework":"true","search_action":"initiative","search_wap_mall":"false","setting_on":"imgBanners,userdoc,tbcode,pricerange,localshop,smartTips,firstCat,dropbox,realsale,insertTexts,tabs","showspu":"true","sort":"_sale","spm":"a2141.1.searchbar.searchbox","sputips":"on","style":"list","subtype":"text","sugg":"iphone11_0_0","suggest_rn":"bucketid_1-rn_9ce4a9df-e0c0-418d-80a2-df54040958ed","sversion":"8.3","taoxianda":"true","ttid":"701186@taobao_android_9.2.0","utd_id":"XLWkskakX5EDAEAuXveJ2YJy","utparam":"{\\"ranger_buckets_native\\":\\"tsp2189_21618_normaluser01\\"}","vm":"nw"}'''api = "mtop.taobao.wsearch.appsearch"v = "1.0"gwMtopApi(api, v, data, uid="60348168", sid="96d58db05c3654c6015572075f9e41ea")if __name__ == '__main__':getTaobaoDetail()

技术支持

感谢大家在百忙中阅读我的博客。

最新某宝x-sign参数生成原理相关推荐

  1. 【爬虫】关于淘宝的sign参数生成算法

     关于淘宝的数据抓取,可能涉及到的一个参数就是sign,sign的值是有一个计算公式的,基于已有的经验,知道这种参数一般多是会保存在js文件里的. (1)在淘宝页面,打开开发者工具(F12),然后搜索 ...

  2. 2019年末逆向复习系列之淘宝M站Sign参数逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是<2019年末逆向复习系列>的第一篇:< ...

  3. 爬虫----js逆向某宝h5的sign参数

    抓包 开发者工具中抓到包,发现有我们需要的商品数据. 分析构成的参数 对比两次请求发现,变化的参数只有两个: t参数: 一眼就看出来是一个13位时间戳 sign参数:貌似是一些参数经过哈希加密算法之后 ...

  4. JS逆向加密——某宝sign参数分析

    某宝sign参数分析 这里只做分析用途, 作为学习和交流 !!!! 1. 抓包分析  (这里是店铺搜索来作为分析) 多抓几次 包对比 动态变化的参数 : page  页数 q 搜索关键字 t 时间戳 ...

  5. 第一章:costmap_2d代价地图生成原理

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 (1)[代价地图]costmap_2d功能包源码解读 (1)代价地图 ...

  6. 抖音sign值生成失效分析(2020-03)

    这两天发现抖音分享页面 用户视频数据获取不到了 目前用户信息还是可以正常获取的:抖音用户信息爬取案例 之前的sign生成方法: 抖音视频分享页面_signature 我简单检查了一遍发现是sign值错 ...

  7. Zabbix之2023 Zabbix6.4最新高级特性、优缺点及其实现原理总结

    目录 Zabbix高级特性1. 自动发现 Zabbix高级特性2. 分布式监控 Zabbix高级特性3. 高级报警 Zabbix高级特性4. 可视化 Zabbix高级特性5. API Zabbix高级 ...

  8. 某瓜数据之sign参数分析

    今天我们要分析的app 是某瓜数据, 版本号v1.4.7 ,小伙伴们可以去各大应用商定自行下载. 转载请注明出处: https://blog.csdn.net/weixin_38819889/arti ...

  9. 淘宝Push智能文案生成

    本文主要介绍了2021年笔者在智能文案生成项目所做的工作. 业务背景 Push是淘宝重要促活手段之一,运营同学通过投放各类营销.产品Push以达到唤端.促活目的.Push素材通常由人群.商品或者活动. ...

最新文章

  1. R将dataframe数据保存为csv文件
  2. 新工作总结之权限系统设计
  3. 详解程序包管理RPM
  4. MySQL读写分离应用层实现
  5. 有关缅甸语学习的一些网站
  6. 一个信道的数据传输速率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,那么要求的数据帧长度至少为( )
  7. [转载]《STL源码剖析》阅读笔记之 迭代器及traits编程技法
  8. Android BottomNavigationBar导航栏
  9. tornado异步客户端(Future)
  10. java中设置http响应头控制浏览器禁止缓存当前文档内容
  11. R语言预测shibor走势:prophet
  12. LeetCode之SQL练习:第二高薪
  13. 短视频仿抖音源码--探索短视频+时代
  14. ASA防火墙SSL ×××配置
  15. wxpython控件旋转_wxPython修改文本框颜色过程解析
  16. 13号线ab线规划图_有图有真相,北京13号地铁将拆分为AB两条线
  17. 设置在线html视频几倍数播放,HTML5倍数功能视频播放器(加速2倍,1.5倍播放)...
  18. linux磁盘阵列 启动盘,Linux RAID磁盘列阵完全攻略
  19. webgl天空盒边界缝隙_基于webGL技术的3D库ThingJS支持天空盒技术实现
  20. 【iOS】—— 高德地图SDK基础使用

热门文章

  1. Qt之QWidget设置窗口背景图片的几种方法
  2. java毕业论文云笔记_开题报告基于Java云笔记管理系统.doc
  3. 假设检验-U检验、T检验、卡方检验、F检验
  4. 程序员,在北上广深杭赚够100万,就逃回二三四线城市生活,靠谱吗?
  5. python opencv录制视频_Python27+Opencv3 捕获网络摄像头IPCamera实时视频
  6. OpenMP - 维基百科,自由的百科全书
  7. 全球定位系统GPS简介
  8. [Practical.Vim(2012.9)].Drew.Neil.Tip09学习摘要
  9. 【Unity3D】Helloworld
  10. 计算机lad指令什么意思,LAD 文件扩展名: 它是什么以及如何打开它?