某鱼算法 收集
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)