def get_sign(Pm):
#这里是加密需要的字段
arg0 = Pm['appKey']
arg1 = Pm['utdid'] + "&"
arg1 = arg1 + Pm['uid']+ "&"
arg1 = arg1 + Pm['reqbiz-ext']+ "&"
arg1 = arg1 + Pm['appKey']+ "&"
arg1 = arg1 + Pm['datamd5']+ "&"
arg1 = arg1 + Pm['t']+ "&"
arg1 = arg1 + Pm['api']+ "&"
arg1 = arg1 + Pm['v']+ "&"
arg1 = arg1 + Pm['sid']+ "&"
arg1 = arg1 + Pm['ttid']+ "&"
arg1 = arg1 + Pm['deviceId']+ "&"
arg1 = arg1 + Pm['lat']+ "&"
arg1 = arg1 + Pm['lng']+ "&"
arg1 = arg1 + Pm['ext']+ "&"
arg1 = arg1 + Pm['x-features']+ "&"
arg1 = arg1 + Pm['routerId']+ "&"
arg1 = arg1 + Pm['placeId']+ "&"
arg1 = arg1 + Pm['openBiz']+ "&"
arg1 = arg1 + Pm['miniAppKey']+ "&"
arg1 = arg1 + Pm['reqAppKey']+ "&"
arg1 = arg1 + Pm['act']+ "&"
arg1 = arg1 + Pm['openBizData']
arg2 = Pm['api']
arg3 = "pageName="+ Pm['pageName'] + "&pageId=" + Pm['pageId']
sign = xianyu.get70102(arg0,arg1,arg2,arg3)
ret = eval(str(sign))
Pm.update(ret)
return ret
#在这里定义自己的字段
def build_Pm(api,v,data):
Pm = {}
Pm['x-app-ver'] = "7.1.60"
Pm['utdid'] = "YIJLR2Y/7fgDAMOPtQCGzfRz"
Pm['uid'] = ""#登录后才有
Pm['reqbiz-ext'] = ""
Pm['appKey'] = "21407387"
Pm['datamd5'] = hashlib.md5(data.encode("utf-8")).hexdigest() if data != "" else ""
Pm['t'] = str(int(time.time()))
Pm['api'] = api
Pm['v'] = v
Pm['sid'] = ""#登录后才有
Pm['ttid'] = "36137321407327@fleamarket_android_7.1.60"
Pm['deviceId'] = "AlKfW_V2tm3mJ3AYHwUErKPkq41dPGN2vXWlskFJDb2s"
Pm['lat'] = "0"
Pm['lng'] = "0"
Pm['ext'] = "openappkey=DEFAULT_AUTH"
Pm['x-features'] = "27"
Pm['routerId'] = ""
Pm['placeId'] = ""
Pm['openBiz'] = ""
Pm['miniAppKey'] = ""
Pm['reqAppKey'] = ""
Pm['act'] = ""
Pm['openBizData'] = ""
Pm['pageName'] = ""
Pm['pageId'] = ""
Pm['x-sgext'] = ""
Pm['x-umt'] = ""
Pm['x-mini-wua'] = ""
Pm['x-sign'] = ""
Pm['x-pv'] = "6.3"
Pm['x-bx-version'] = "6.5.24"
Pm['User-Agent'] = "MTOPSDK/3.1.1.7+(Android;7.1.2;HUAWEI;VOG-AL00)"
Pm['Cookie'] = ""
Pm['f-refer'] = "mtop"
sign = get_sign(Pm)
return Pm
def xianyu_post(url,api,v,data,_headers = {}):
Pm = build_Pm(api,v,data)
headers = {
"x-extdata": Pm['ext'],
"x-features": Pm['x-features'],
"x-sgext": quote_plus(Pm['x-sgext']),
"umid": quote_plus(Pm['x-umt']),
"User-Agent": quote_plus(Pm['User-Agent']),
"x-ttid": quote_plus(Pm['ttid']),
"content-type": "application/x-www-form-urlencoded;charset=UTF-8",
"a-orange-q":"appKey="+Pm['appKey']+"&appVersion="+Pm['x-app-ver']+"&clientAppIndexVersion=1120210930160801265&clientVersionIndexVersion=0",
"x-appkey": Pm['appKey'],
"x-mini-wua": quote_plus(Pm['x-mini-wua']),
"x-nq" : "WIFI",
"x-nettype": "WIFI",
"first_open" : "0",
"x-c-traceid": Pm['ttid'] + Pm['t'] +"332000317813",
"x-app-conf-v": "0",
"x-pv": Pm['x-pv'],
"x-bx-version": Pm['x-bx-version'],
"x-t": Pm['t'],
"x-app-ver": Pm['x-app-ver'],
"f-refer": Pm['f-refer'],
"Cookie" : Pm['Cookie'],
"x-sid": Pm['sid'],
"x-utdid": Pm['utdid'],
"x-umt": quote_plus(Pm['x-umt']),
"x-devid": Pm['deviceId'],
"x-sign": quote_plus(Pm['x-sign']),
"x-location": quote_plus("{0},{1}".format(Pm['lng'], Pm['lat'])),
"x-page-name": Pm['pageName'],
"x-page-url": quote_plus(Pm['pageId']),
"x-uid": Pm['uid']
}
headers.update(_headers)
url = url + "/" + api + "/" + v + "/"
postdata = "data=" + quote_plus(data)
ret = requests.post(url, data=postdata, headers=headers)
return ret
url = "http://acs.m.taobao.com/gw"
api = "mtop.taobao.idle.local.flow.plat.container"
v = "1.0"
data = '{"productId":"2","unionKey":"online_local_concept_container"}'
ret = xianyu_post(url,api,v,data)
print(ret.text)
24文章 112获赞 65评论 3.5万+浏览
世界那么大,我想去看看。但钱包那么小,哪也去不了。所以,珍惜当下,享受生活。
28岁
IP: 杭州
家里蹲大学
x-sign 算法
评论
(0)