diff --git a/taobao/MANIFEST.in b/taobao/MANIFEST.in new file mode 100644 index 0000000..ce0d18e --- /dev/null +++ b/taobao/MANIFEST.in @@ -0,0 +1 @@ +include TSDK/README.md \ No newline at end of file diff --git a/taobao/README.md b/taobao/README.md new file mode 100644 index 0000000..fdb7180 --- /dev/null +++ b/taobao/README.md @@ -0,0 +1,89 @@ +# TSDK +淘宝爬虫SDK,用于淘宝开放平台或淘宝登录爬取 + + +## 淘宝系列爬虫系列SDK + + - SDK更新到第二版,对一部分进行了优化 + * 优化掉通用类,此类本身最开始是为了能够使用无授权API,但是之后发现臃肿繁杂,还不如直接请求网址URL,觉得有些画蛇添足了,所以直接去掉 + * 优化开放平台类,繁杂的配置文件,多余的加载,我用了Node的SDK之后发现还不如Node的方便,只需要传入API名称和数据就行了,那么我弄了配置文件又有什么用,没有达到简单可用的目的遂改成Node一样的方式请求数据 + * 优化H5API类,经过我思考后觉得配置文件太过繁杂,且不够灵活也不多变,爬虫本身就是需要多变的,所以移除配置文件,通过传递参数直接构建,更加灵活方便 + + - 还有部分功能未实现,例如日志功能和请求重放功能,以及新添加的网站 + +```python + from TSDK.mTop import Client + + top = Client() + #获取淘宝二维码,可以通过扫码登录淘宝 + umid_token = top.getUmidToken() + res = top.login(umid_token) + print(res.text) + data = json.loads(res.text) + thr = top.checkState(data['lgToken'],umid_token,30) + thr.start() + + + #设置开放平台的appkey和密钥,然后传递API和配置可以直接获取数据 + top.open.config['appkey'] = '' + top.open.config['appsecret'] = '' + + res = top.open.execute('taobao.tbk.item.get',{ + 'fields':'num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,volume,nick', + 'q':'女装', + 'cat':'16,18' + }) + print(res.text) + + #通过淘宝的H5API获取宝贝详情 + res = top.H5.execute({ + 'api':'mtop.taobao.detail.getdetail', + 'v':'6.0', + 'jsv':'2.4.8', + 'dataType':'json', + 'type':'json', + 'ttid':'2017%40taobao_h5_6.6.0', + 'AntiCreep':'true', + 'data':{ + 'itemNumId':'585559878166' + } + }) + print(res.text) + + #API请求日志的记录,SDK对象继承自requests的Session类,可以通过添加hook来获取响应 + #请参考requests高级用法:http://docs.python-requests.org/zh_CN/latest/user/advanced.html + def console(res): + print(res.url) + print(res.text) + + top.H5.hooks['response'] = [console] + +``` + +### Cookie的同步 + +```python + from requests.cookies import RequestsCookieJar + + dt = top.H5.cookies.get_dict('.login.taobao.com') + + jar = RequestsCookieJar() + for name in dt: + jar.set(name,dt[name],path='/',domain='.login.taobao.com') + + # 通过设置cookie来共享登录状态 + top.cookies.update(jar) + +``` + + +### 淘宝APP端API + + 学了一段时间的Hook,逆向,结果看来APP端的加密是破解不出来了。。。。,就分享一下找到的API吧 + + +### 淘宝短信登录 + + 测试了淘宝短信登录,请求中需要一个ua参数,这个参数是算法生成出来的,经过测试应该是根据平台登录的浏览器环境记录下来,所以如果ua参数不对的话那么就登录不了,会出现滑动验证 + 如果要进行短信登录测试的话,替换ua参数为你自己浏览器上面的ua参数,在源码中修改 + diff --git a/taobao/__init__.py b/taobao/__init__.py new file mode 100644 index 0000000..ce41131 --- /dev/null +++ b/taobao/__init__.py @@ -0,0 +1,7 @@ +# coding:utf-8 + +# from mTop import Taobao + +# taobao = Taobao + +#name = 'TSDK diff --git a/taobao/mTop.py b/taobao/mTop.py new file mode 100644 index 0000000..d9d3ded --- /dev/null +++ b/taobao/mTop.py @@ -0,0 +1,331 @@ +# coding:utf-8 +try: + from .taobao.淘宝H5 import TB_H5 + from .taobao.淘宝开放平台 import TB_openPlatform + from .taobao.SDK基类 import Base + from .util.tools import BackThread,Encry +except ImportError as e: + from taobao.淘宝H5 import TB_H5 + from taobao.淘宝开放平台 import TB_openPlatform + from taobao.SDK基类 import Base + + from util.tools import BackThread,Encry + +import json +# from threading import Thread +from time import sleep,strftime,time +from requests.cookies import RequestsCookieJar +from urllib.parse import urljoin,parse_qsl,urlparse,quote +from collections import OrderedDict +import re +from random import random + +class Client(Base): + + def __init__(self): + super(Client,self).__init__() + self.H5 = TB_H5() + self.open = TB_openPlatform() + self.encry = Encry() + self.setcookie() + + # def __first(self,domain:str='https://h5api.m.taobao.com',url:str="/h5/mtop.taobao.wireless.home.load/1.0/?appKey=12574478"): + # ''' + # 必须首先请求一个api来获取到h5token + # 有多个API时,需要先获取多个API下面的token + # 如果是https://h5api.m.tmall.com下的API也是需要先获取token的 + # ''' + # res = self.get(urljoin(domain,url)) + # return res + + def setcookie(self): + _uab_collina = '' + for i in range(20): + if len(_uab_collina) < 11: + _uab_collina += str(random())[2:] + else: + break + #第一个cookie,domain为login.taobao.com,path为/member + _uab_collina = str(int(time() * 1000)) + _uab_collina[len(_uab_collina) - 11:] + self.H5.cookies.set('_uab_collina',_uab_collina,domain='login.taobao.com',path='/member') + + #第二个cookie,请求这个JS,https://log.mmstat.com/eg.js,然后把etag的值设置为cna + res = self.H5.get('https://log.mmstat.com/eg.js') + cna = re.findall(r'Etag="(.*?)"',res.text)[0] + self.cookies.set('cna',cna,domain='.taobao.com',path='/') + + #第三个cookie,isg为算法生成的,不好破解,domain为.taobao.com,path为/ + isg = 'BM3NGuFcrQh-tgkk_KLDk9jr3OlHqgF8pnooOQ9SCWTTBu241_oRTBuUcNrFxhk0' + self.H5.cookies.set('isg',isg,domain='.taobao.com',path='/') + + #第四个cookie,l为算法生成,domain为.taobao.com,path为/ + l = 'bBgKwFjlv-QtIl3JBOCanurza77OSIRYYuPzaNbMi_5pK6T_Bk7OlgnjDF96Vj5RsxYB4-L8Y1J9-etkZ' + self.H5.cookies.set('l',l,domain='.taobao.com',path='/') + + def login(self,umid_token,domain:str='https://www.taobao.com'): + self.defaulturl = domain + # self.H5.get(f'https://login.taobao.com/member/login.jhtml?redirectURL={domain}') + self.H5.get(f'https://login.taobao.com/member/login.jhtml?allp=&wbp=&sub=false&sr=false&c_is_scure=&from=tbTop&type=1&style=&minipara=&css_style=&tpl_redirect_url={quote(domain)}&popid=&callback=&is_ignore=&trust_alipay=&full_redirect=&need_sign=&sign=×tamp=&from_encoding=&qrLogin=&keyLogin=&newMini2=') + res = self.H5.get(f'https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?adUrl=&adImage=&adText=&viewFd4PC=&viewFd4Mobile=&from=tb&appkey=00000000&umid_token={umid_token}') + # data = json.loads(res.text) + # thd = self.checkState(data['lgToken'],umid_token,timeout) + return res + + def checkState(self,lgToken,umid_token,timeout): + '''在闭包中修改变量要使用nonlocal关键字''' + def run(): + nonlocal timeout + # locals()['lgToken'] = lgToken + # locals()['umid_token'] = umid_token + # locals()['timeout'] = timeout + # print(lgToken) + while timeout > 0: + self.H5.headers.update({ + 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', + 'Referer':'https://login.taobao.com/member/login_unusual.htm?user_num_id=2979250577&is_ignore=&from=tbTop&style=&popid=&callback=&minipara=&css_style=&is_scure=true&c_is_secure=&tpl_redirect_url=https%3A%2F%2Fwww.taobao.com%2F&cr=https%3A%2F%2Fwww.taobao.com%2F&trust_alipay=&full_redirect=&need_sign=¬_duplite_str=&from_encoding=&sign=×tamp=&sr=false&guf=&sub=false&wbp=&wfl=null&allp=&loginsite=0&login_type=11&lang=zh_CN&appkey=00000000¶m=7nmIF0VTf6m%2Bbx8wuCmPLTEdh1Ftef8%2B5yUA%2FXNtAI%2FfMwadkeaCast40u2Ng0%2FC7Z75sOSVLMugWTqKjJ7aA55JYIL%2FPDFJ7zaJhq9XSVUOX%2B1AxQatuIvw4TXGJm1VG4alZ2UohVAAt5WTLYbs5im077nTG%2BOkovORQNtMCEzWKMe0xcuienFAhsBhC0V7qIYZJvPGOOEt0tORA8Fv1zYPuOkWEPDFsPwYG5xj4LTKNZt5HSRRHkviiPy9AJ9uC%2Bs7V%2FQ7b6K07YUG1fA3tFwALGnorSUXRdhcXUBBAt6IiyStIkWFWDgJEymOAXOS5RNGlO1EL5ppmpQas7BarrW2Krui4bxV81AJXyxLfnk3MOxI2dUNdO9VQNY0F6a6nk%2FCzUfR0NfPRrIoXuZDn2N01A8q5XGrMlWmBCH5%2FSKz6%2F%2BrUx3%2FxQTYWmgV49rVSdtySIHip5PsrXHWXCbHqscdve540l5CUKTT7znsoL45pth%2FosxMUb649Yw1EPAq' + }) + res = self.H5.get(f'https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken={lgToken}&defaulturl={self.defaulturl if hasattr(self,"defaulturl") else "www.taobao.com"}') + data = json.loads(res.text) + if data['code'] == '10006': + print(data) + url = data['url'] + '&umid_token=' + umid_token + res_main = self.H5.get(url) + print('扫码成功') + if res_main.url.find('login_unusual.htm') > -1: + print('需要安全验证登录') + return False + # URL = re.findall(r"url:'(.*?)',",res_main.text)[0] if re.findall(r"url:'(.*?)',",res_main.text) else None + # if not URL: + # status = False + # res = self.H5.get(URL) + # txt = res.text.replace(re.findall(r'''"tipsInfo":".*?",''',res.text)[0],'') + # data = json.loads(re.findall(r"value='(.*?)'",txt)[0]) + # param = data.get('param') + # target = data.get('options')[0]['optionText'][0]['code'] + # self.H5.headers.update({'Origin':'https://aq.taobao.com','Referer':'https://aq.taobao.com/durex/validate?param=7nmIF0VTf6m%2Bbx8wuCmPLV6h%2FBQmDRI8eV0OZyuo1fwa%2FgvJ5VoYvhtsoSv%2BF6cVUYizmLOxpLs2mfNAJ8vsGbcBnf0mzB1xSKqsSGvUqY%2Bq5%2FxX1gBcxe0gF0LFtAmr%2FWJFjntGTKMrtyIKbwf5ouytcdZcJseqVq8v%2Fy9%2FeTX4wWc9LeLhPtz8D7l%2FxF%2BCIJggV7kbXlu7mGPRB7pECo%2B2ziHSK%2BByv5YxyYP2zNhUh4QXk5GvHVwJW%2Bua9aMJPAoVN5qoDgqHkrh2z5WYxiZzWy%2BtzWY2652vDwnjI%2F1O7f%2BQy7nknGS71GKCQqOGs3AMkiRA4F2Fhe5TrpbLcH6HfmPw4xL2Y%2BTM1%2F6RVEHcLNdcER2hJ89lHMKhuywTXjzIEiEJAa7NzBo6GJAS2iAUs1CRfB5KaLZHD%2FA1QCQQXiS%2F8FgFVV%2FnCMMCninEOgC%2FLnlUcHBCWBb8kdeKUOAQKft0cdJbKwTKZRdNvxGePGPRtvDX%2Bk7xAUDsqTuPoR6d2gik3XA8G1nKKH%2BEZ8lneUmpZXuM0t1kVDQM4qYfrTw3yLxh6g%3D%3D&redirecturl=https%3A%2F%2Flogin.taobao.com%2Fmember%2Flogin_mid.htm','User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}) + # res = self.sendcode(param,target) + # code = '' + # res = self.checkcode(param,code,target) + # urls = re.findall(r'"(.*?login_by_safe.htm.*?)"',res_main.text) + # print(urls) + # res = self.H5.get(urls[1]) + # dt = OrderedDict(parse_qsl(URL.query)) + + # res2 = self.H5.get(f'https://aq.taobao.com/durex/validate?param={dt["param"]}&redirecturl=https%3A%2F%2Flogin.taobao.com%2Fmember%2Flogin_mid.htm') + # print(res2.url) + + return True + break + elif data['code'] == '10001': + print('正在扫码') + sleep(1) + continue + elif data['code'] == '10004': + timeout = 0 + break + elif data['code'] == '10000': + # print(data['message']) + pass + timeout -= 1 + sleep(1) + return False + + # thd = Thread(target=run) + thd = BackThread(run,()) + return thd + + def sendcode(self,param:str='',target=''): + domain = 'https://aq.taobao.com/durex/sendcode' + data = { + 'checkType':'phone', + 'target':target, + 'safePhoneNum':'', + 'checkCode':'' + } + res = self.H5.post(domain,params={'param':param,'checkType':'phone'},data=data) + + try: + data = json.loads(res.text) + print(data.get('message') or '发送失败') + except Exception as e: + print(res.text) + return res + + def checkcode(self,param,code,target): + '''淘宝安全登录验证''' + head = {'origin':'https://aq.taobao.com'} + domain = 'https://aq.taobao.com/durex/sendcode' + data = { + 'checkType':'phone', + 'target':'', + 'safePhoneNum':'', + 'checkCode':code, + 'pageLog':{ + 'actions':[ + {'result':'true','target':'其他验证方式','targetType':'a','attr':'','userTime':strftime('%Y-%m-%d %H:%M:%S'),'type':'operation'}, + {'result':'true','target':'手机短信验证','targetType':'div','attr':'','userTime':strftime('%Y-%m-%d %H:%M:%S'),'type':'operation'}, + {'result':'true','target':'确定','targetType':'button','attr':'','userTime':strftime('%Y-%m-%d %H:%M:%S'),'type':'operation'} + ] + } + } + res = self.H5.post(domain,params={'param':param},data=data) + try: + data = json.loads(res.text) + print(data.get('message') or '发送失败') + except Exception as e: + print(res.text) + return res + + def sendMsg(self,phone,url:str='https://login.m.taobao.com/sendMsg.do'): + self.H5.get('https://login.m.taobao.com/msg_login.htm?spm=0.0.0.0&ttid=h5%40iframe&redirectURL=https%3A%2F%2Fh5.m.taobao.com%2Fother%2Floginend.html%3Forigin%3Dhttps%253A%252F%252Fmain.m.taobao.com') + um_token = self.um_token if hasattr(self,'um_token') else self.get_umtoken() + form = { + 'TPL_username':phone, + 'ncoSig':'', + 'ncoSessionid':'', + 'ncoToken':'', + 'um_token':um_token, + 'ua':'115#1UEIUf1O1TNL1lTDtfGe1CsoE51MI9A11g2u1N2ZKC11q8VlGODHhBlfyzFiNIfyMx/8y5cWi/JJhUUzsoOck86fuzEpOSAyet/8s6IpNbn4eUU4AkN2aYBXuW1QGVysFKT4y5oQiQJJhzU4AWND5YpXyrPQASv4eK/8uSPpgQJRhKAbwzmFZL1010F9dPYMTT9cxCNRlGgmOxpbEFkRe8qIfoxy7pl1yFwqawuBxnihuX5JPN5sYlslAvHUQDZegJuNJ3ED+pTSNDNeHR8PwP/4CjnjTGSLpKqJr63y5qX6Qr8L+kMQ/6Q+27fNulWSpMnOl389bwum8I66eZCn5ICKxvk2hhVzRo6Jbj3vN01kYgauHzEStRXEyjMygV8G06FpIWqJ7EwSO9u1npAOv3MXhII5hTcio6YVz92pF6vCMHvxbsL3ISLy/yUnHM9HiQhyc1ffofR6uNd3TQCFAffrknFNmIMjkqTV/b3sBxns9cMWfUsnR9ueur1SEBL5ZdNYl/tnFU33wwmffwGk4bl5DAx3/HpDH88R356aSLJmi8hfb4OvWsMhp2DAmf6O4sZewL6noDmMfCdW3vyLHd2lPAiDUwRHisnPRSsgUIyRDS+F7M8Z4IxmYrmZg269gzRIaUcJkglgoNQ7AvHqP+qpLUsgo6MUE1/8FrIanONOaEG=' + } + res = self.H5.post(url,form) + print(res.text) + data = json.loads(res.text) + return data + + + def msgForm(self,phone:str,sms_code:str,options:dict={}): + url = 'https://login.m.taobao.com/msg_login.htm' + + form = { + 'TPL_username':phone, + 'msgCheckCode':sms_code, + 'otherLoginUrl':'https://login.m.taobao.com/login.htm?nv=true&spm=0.0.0.0&ttid=h5%40iframe&redirectURL=https%3A%2F%2Fh5.m.taobao.com', + 'action':'MsgLoginAction', + 'event_submit_do_login':1, + 'ncoSig':'', + 'ncoSessionid':'', + 'ncoToken':'', + 'TPL_redirect_url':'https://h5.m.taobao.com', + 'loginFrom':'WAP_TAOABO', + 'smsTime':'', + 'smsToken':'', + 'page':'msgLoginV3', + 'um_token':self.um_token if hasattr(self,'um_token') else self.get_umtoken(), + 'ua':'115#1bF1c11O1TZ9MHu5tfGe1CsoE51MI9A11g2u1N2ZKC11q8VlGODHXfOYPaFGsbtzDLoa0/Xn8SNPe/a8yWdi9n4VnJrVt9m5w8pXyrrQ9yffe3VGyWTzG/rkh4zNAWIDZTnwyzy7ASVyeKQ4uWNQi/W5hX/1x11yaTBfy5fpOSAyFKThTyipiQJJv4U4OkN2aTBfurPIASAPetT8u7SQi/WRKB1COWND/BNDHDKpvd1OL+MQSFAFFKjH17QffqcK8w4z0jzTU6N6JM4+4puJ2M+Ph4lZPOuTMTKkxfT8qIYQdi1PDPZaH0EarDs8wF+6RCixRgqIpvyZAkR4LV7p2yEzWVDkPy/zS0LSIrHvYPbDo0Wcp2iZd1l6p04vjBwtD0D5Jx/qQkzIwQhR0Qi+CM1Y1BWgaSF9ipXhirSznvmx68tlGAIBgX1IL9b21Sr3YOTdVVOoP/JE+6TG9ugUXCNWATtXJ0yYxIfWbyriL7f4gGfuugKcPMa1WqT0/4B1DG/Y85suJRPGQZ5qRIDqJG5IDDiXvtnttb6Z0ON0VR8Jj8+J6pLUzmbzYa6n62AxdcNADWJHpbXWR+ZmEZqMLjy2Z1xrcnwZ1voco68WYsWh2sMg2dWzSlNLQP9fMWQ/mGUmRg8k2LQEpD4abJLUj8AlPwnIOY76iuNt+ZhJLvbrEJX4GTIy+xzN1XG1W6GO6gIwxLpi8BWrGG5gagbjRfJPX40tdZgyaOREdQzmS7eSDVky8SL+V54qHEIYWYjYWVjj' + } + + if options: + form.update(options) + + res = self.H5.post(url,data=form,params={'spm':'','ttid':'h5@iframe','redirectURL':'https://h5.m.taobao.com/other/loginend.html?origin=https%3A%2F%2Fmain.m.taobao.com'}) + # print(res.text) + return res + + def getUid(self,url:str='https://ynuf.alipay.com/uid'): + '''获取的缓存id''' + res = self.H5.get(url) + print(res.text) + try: + cid = res.text[11:-3] + except Exception: + cid = '' + return cid + + def get_umtoken(self,url='https://ynuf.aliapp.org/service/um.json'): + '''获取um_token''' + #获取cna的cookie值 + res = self.H5.get('https://log.mmstat.com/eg.js',timeout=3000) + res = self.H5.post(url,data={'data':'106!h5xmc0clzUWcx81sHmHI4lxmYX+lQzGzUUam0LHtKjRU56cmfapq6YcPzdHCncxrQGoudp7HxfbvZ28EKYD9SajrWgZPvQJHaDBqufIBJ8Gmo9RvclZwCI2Jm7Gef18rbdkP3jz7HrVjMfzEZCh1URFsPTXJOFYU4v/SP7Eg1UkkyTAZPlZ1U4FJw7v/iu/IKVCU5u8Es+ZU52aU6qOw/RuAPJX2Y77K5FaU4ujcNp+paodlQqjiFQRpLlbR64f5lZqlaS5LVNVllBllQFwurplyr4PhiWaQ4WLU5UWcTtebPSc1+VQOGrk/lJ5DSxgYiC6+WyB6mb47wVVktIKkdQI29yQSLsiR363Bo+90mJc0lpX93brWWL6AUItxxVAUnU+QiddYaSBHsP2diFw267UCSs+h6aoDns7QNR+RgZFcWqLZ7kFMNFy4OPPMvMmHvRsoJUPRzmbFVVHR3em9ie8N7DX6Wk9aNC/mA0GcDuEhxIuT9P1yXADX639yLvkiZ7aFkVU4iaQpOAD+N5on2JHSogWDyjO4fwHARigFGVBxwSPafUYu50nLvB9MlI8yy5RnhoArL/X1fIC4Mp2pOx+Vyml8oKlKcNwoArxzNwT7uFyEklLulzt1wXE=','xa':'taobao_mlogin','xt':''}) + psdata = json.loads(res.text) + um_token = psdata.get('tn') + self.um_token = um_token + data = { + 'etf':'', + 'xa':'', + 'siteId':'', + 'uid':'', + 'eml':'AA', + 'etid':'', + 'esid':'', + 'bsh':398, + 'bsw':360, + 'cacheid':self.getUid(), + 'eca':self.H5.cookies.get('cna',''), + 'ecn':"0853e2dc2b17946f6cf315e412fb6b40a4aa9ec7", + 'eloc':'https%3A%2F%2Flogin.m.taobao.com%2Fmsg_login.htm', + 'ep':self.encry.hash_encrypt(''), + 'epl':0, + 'epls':'', + 'esid':'', + 'esl':False, + 'est':2, + 'etf':'b', + 'etid':'', + 'ett':int(time() * 1000), + 'etz':480, + 'ips':'', + 'ms':'445388', + 'nacn':'Mozilla', + 'nan':'Netscape', + 'nce':True, + 'nlg':'zh-CN', + 'plat':'Win32', + 'sah':640, + 'saw':360, + 'sh':640, + 'sw':360, + 'type':'pc', + 'uid':'', + 'xs':'', + 'xt':self.getUmidToken(), + 'xv':'3.3.7' + } + res = self.H5.post(url,data={'data':'ENCODE~~V01~~' + self.encry.encrypt(json.dumps(data,separators=(',',':')))}) + print(res.text) + _id = json.loads(res.text) + self.H5.cookies.set('_umdata',_id.get('id'),domain='login.m.taobao.com',path='/') + return um_token + +if __name__ == '__main__': + + top = Client() + # umid_token = top.getUmidToken() + # res = top.login(umid_token) + # print(res.text) + # # cookie = { + # # '.login.taobao.com':top.cookies.get_dict('.login.taobao.com'), + # # '.taobao.com':top.cookies.get_dict('.taobao.com') + # # } + # # jar = RequestsCookieJar() + # # for domain in cookie: + # # for name in cookie[domain]: + # # jar.set(name,cookie[domain][name],path='/',domain=domain) + # # top.H5.cookies.update(jar) + # data = json.loads(res.text) + # thr = top.checkState(data['lgToken'],umid_token,120) + # thr.start() + # res = thr.get_result() + # print(res) + # top.H5.headers = { + # 'Referer':'https://s.m.taobao.com/h5?event_submit_do_new_search_auction=1&_input_charset=utf-8&topSearch=1&atype=b&searchfrom=1&action=home%3Aredirect_app_action&from=1&sst=1&n=20&buying=buyitnow&q=%E7%94%B7%E8%A3%85', + # 'User-Agent':'Dalvik/2.1.0 (Linux; U; Android 7.0; MI 4S MIUI/8.9.13)' + # } + phone = input('请输入手机号:') + smsdata = top.sendMsg(phone) + if smsdata.get('success'): + + smscode = input('请输入验证码:') + res = top.msgForm(phone,smscode,{'smsTime':smsdata.get('smsTime'),'smsToken':smsdata.get('smsToken')}) + # print(res.text) + else: + print(smsdata.get('message')) + + res = top.H5.execute({ + 'api':'mtop.taobao.shop.impression.intro.get', + 'v':'1.0', + 'type':'originaljson', + 'AntiCreep':'true', + 'dataType':'json', + 'data':{'sellerId':17112733,'shopId':61044576} + }) + print(res) diff --git a/taobao/setup.py b/taobao/setup.py new file mode 100644 index 0000000..fc11e2a --- /dev/null +++ b/taobao/setup.py @@ -0,0 +1,27 @@ +# coding:utf-8 + + +from setuptools import setup,find_packages + +setup( + name="TSDK", + version = "0.2", + install_requires = [ + 'requests', + ], + packages = find_packages(), + #packages = ['TSDK'], + description = "淘宝爬虫SDK", + long_description = "淘宝爬虫SDK", + author = 'xinlingqudongX', + author_email = 'aa@163.com', + #py_modules = ['mTop'], + # license = 'GPL', + # keywords = ('淘宝','SDK','爬虫'), + # platforms = 'Independant', + url = 'https://github.com/xinlingqudongX/TSDK', + #data_files = ['./README.md'] + #include_package_data=True, #不要使用这个 + #package_data = {'':['*.md']} + #include_package_data=True +) diff --git a/taobao/taobao.py b/taobao/taobao.py deleted file mode 100644 index e8fd792..0000000 --- a/taobao/taobao.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/python3 -# -*- coding: utf-8 -*- -""" -author : CriseLYJ -github : https://github.com/CriseLYJ/ -update_time : 2019-4-2 -""" - -""" -淘宝登陆有时候不会跳出二维码页面,如果失败,请重新运行程序即可 -""" - -from selenium import webdriver -from selenium.webdriver.common.by import By -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.support import expected_conditions as EC - - -class Taobao_Spider: - - def __init__(self, username, password): - """初始化参数""" - url = 'https://login.taobao.com/member/login.jhtml' - self.url = url - - options = webdriver.ChromeOptions() - # 不加载图片,加快访问速度 - options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) - # 设置为开发者模式,避免被识别 - options.add_experimental_option('excludeSwitches', - ['enable-automation']) - self.browser = webdriver.Chrome(options=options) - self.wait = WebDriverWait(self.browser, 10) - # 初始化用户名 - self.username = username - # 初始化密码 - self.password = password - - def run(self): - """登陆接口""" - self.browser.get(self.url) - try: - # 这里设置等待:等待输入框 - login_element = self.wait.until( - EC.presence_of_element_located((By.CSS_SELECTOR, '.qrcode-login > .login-links > .forget-pwd'))) - login_element.click() - - sina_login = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.weibo-login'))) - sina_login.click() - - weibo_user = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.username > .W_input'))) - weibo_user.send_keys(self.username) - - sina_password = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.password > .W_input'))) - sina_password.send_keys(self.password) - - submit = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn_tip > a > span'))) - submit.click() - - taobao_name = self.wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, - '.site-nav-bd > ul.site-nav-bd-l > li#J_SiteNavLogin > div.site-nav-menu-hd > div.site-nav-user > a.site-nav-login-info-nick '))) - # 登陆成功打印提示信息 - print("登陆成功:%s" % taobao_name.text) - except Exception: - self.browser.close() - print("登陆失败") - - -if __name__ == "__main__": - username = input("请输入你的微博用户名:") - password = input("请输入密码:") - - spider = Taobao_Spider(username, password) - spider.run() diff --git "a/taobao/taobao/SDK\345\237\272\347\261\273.py" "b/taobao/taobao/SDK\345\237\272\347\261\273.py" new file mode 100644 index 0000000..ea6c810 --- /dev/null +++ "b/taobao/taobao/SDK\345\237\272\347\261\273.py" @@ -0,0 +1,269 @@ +# coding:utf-8 + +from hashlib import md5,sha1 +from hmac import HMAC +from urllib.parse import urlsplit,urljoin,quote,unquote,parse_qsl +from collections import OrderedDict +import json +import logging +import re +from pathlib import Path +import os +from time import time +from random import choice +import json +import functools +import datetime +from requests.exceptions import ProxyError +from requests import Session +from threading import Thread,Event +from http.cookies import SimpleCookie + + +class Base(Session): + '''客户端工具类的基类: + 功能:淘宝h5md5加密 + 淘宝hmac加密,暂时未知真实加密步骤 + 生成URL对象 + 生成requests参数对象 + ''' + + def __init__(self): + # self.req_config = OrderedDict({ + # 'method':'', + # 'domain':'', + # 'path' + # }) + super(Base,self).__init__() + # self.console() + self.stop_event = Event() + self.loggerManager = {} + self.headers.update({ + 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' + }) + # self.log = False + # self.log_format = '' + + + def __getitem__(self,name): + return getattr(self,name) + + def __setitem__(self,name,val): + setattr(self,name,val) + + # def __getattr__(self,name): + # '''属性访问器,当通过这个来访问的时候,判断 + # 有没有mtop属性,有的时候返回taobao对象的方法 + # 改用公共对象的方法访问,用于以后扩展需要 + # ''' + # #判断公共对象是否有这个属性,没有则报错 + # if self.__public__: + # obj = list(filter(lambda obj:hasattr(obj,name),self.__public__)) + # if obj: + # return obj[0][name] + # else: + # raise AttributeError + # else: + # raise AttributeError + + # def __getattribute__(self,name): + # '''属性访问监听器 + # 如果有添加监听器并且匹配到,将把值传入匹配的回调函数中 + # ''' + # val = object.__getattribute__(self,name) + # # if self.loggerManager.get(name) and isinstance(self.loggerManager.get(name),list): + # # for func in self.loggerManager.get(name): + # # val = func(val) + + # return val + + def getUmidToken(self): + return 'C' + str(int(time() * 1000)) + ''.join(str(choice(range(10))) for _ in range(11)) + str(int(time() * 1000)) + ''.join(str(choice(range(10))) for _ in range(3)) + + def getCookie(self,name:str="_m_h5_tk",domain:str='.taobao.com',start:int=0,end:int=32): + '''获取Cookie,默认使用H5的token名称,然后取32位''' + return self.cookies.get(name,domain=domain)[start:end] if self.cookies.get(name,default='',domain=domain) else '' + + def cookstr2dict(self,CookieStr:str): + '''将从浏览器获取到cookie字符串转成字典''' + ls = CookieStr.replace(' ','').split(';') + return OrderedDict(list(map(lambda x:re.split(r'=',x,1),ls))) + # 这种方式也可以直接转换 + # cookie = SimpleCookie() + # cookie.load(CookieStr) + # return cookie + + def console(self,log_options:dict={}): + '''日志输出设置 + 日志的输出格式为:行号 时间 级别::路径->文件名->函数名=>消息 + 日志添加两个:一个是文本日志记录,一个用于控制台输出 + ''' + log_config = OrderedDict({ + 'level':logging.ERROR, + 'filename':'', + 'datefmt':'%Y-%m-%d %H:%M:%S', + 'filemode':'a', + 'format':'%(lineno)d %(asctime)s@%(levelname)s::%(pathname)s->%(filename)s->%(funcName)s=>%(message)s' + }) + log_config.update(log_options) if log_options else None + logging.basicConfig(**log_config) + file_log = logging.FileHandler(Path.joinpath(Path.cwd(),f'{Path(__file__).name.split(".")[0]}-log.txt')) + + console_log = logging.StreamHandler() + console_log.setLevel(logging.DEBUG) + + logger = logging.getLogger(__name__) + logger.addHandler(file_log) + logger.addHandler(console_log) + + + def h5_sign(self,token:str,t:str,appkey:str,data:str,Binary:bool=False): + '''加密方式采用淘宝H5网页的加密流程 + data传递使用的是字符串,一是为了少加密一次,二是为了直接说明这个要转成json字符串,还需要去掉空格 + ''' + func = 'digest' if Binary else 'hexdigest' + sign_str = f'{token}&{t}&{appkey}&{data}' + return getattr(md5(sign_str.encode('utf-8')),func)() + + def open_Hmacsign(self,secret:'密钥信息',sign_data:dict,Binary:bool=False): + '''淘宝开放平台的加密流程:hmac加密''' + ls = sorted(sign_data.items(),key=lambda x:x) + sign_str = ''.join(list(map(lambda x:''.join(x),ls))) + func = 'digest' if Binary else 'hexdigest' + return getattr(HMAC(secret.encode('utf-8'),sign_str.encode('utf-8')),func)().upper() + + def open_Md5sign(self,secret:str,sign_data:dict,Binary:bool=False): + '''淘宝开放平台的加密流程:md5加密''' + ls = sorted(sign_data.items(),key=lambda x:x) + sign_str = ''.join(list(map(lambda x:''.join(x),ls))) + func = 'digest' if Binary else 'hexdigest' + return getattr(md5(f'{secret}{sign_str}{secret}'.encode('utf-8')),func)().upper() + + + def app_sign(self,secret:'加密密钥'='',data:dict={},sign_func=sha1): + '''猜想中的淘宝app加密方法,不过data应该也是要排序什么的吧,不过暂时是不清楚了,逆向不出来 + {v=1.0, deviceId=AiXb03Jh5K0C_vSLWC-u2MasOk_76QEfvIpiCMqJKlAl, appKey=21783927, sid=null, t=1545462522, data={"bizType":"taoPassword.judgePassword","bizParam":"{\"passwordContent\":\"comifengnewsclientgold:\\/\\/call?type=list\"}"}, api=mtop.taobao.aplatform.weakget, utdid=XBNj6B3lKccDAOjKwIsds5d9, x-features=27, uid=null, ttid=10035437@etao_android_8.8.8} + 现在已找到参数组合顺序 + ''' + + def resovle(key_name): + if data.get(key_name) == 'null': + return '' + elif not isinstance(data.get(key_name,''),str): + dumpStr = json.dumps(data.get(key_name),separators=(',',':')) + if key_name == 'data': + return md5(dumpStr.encode()).hexdigest() + else: + return dumpStr + else: + return data.get(key_name,'') + keyword_ls = ['utdid','uid','reqbiz-ext','appKey','data','t','api','v','sid','ttid','deviceId','lat','lng','x-features'] + if data.get('extdata'): + keyword_ls.insert(-1,'extdata') + dt = list(map(resovle,keyword_ls)) + sign_str = '&'.join(dt) + + return HMAC(f'{secret}'.encode('utf-8'),sign_str.encode('utf-8')) + + def map2str(self,paramData:dict): + '''转换传递的字典为连接字符串''' + def resovle(key_name): + if paramData.get(key_name) == 'null': + return '' + elif not isinstance(paramData.get(key_name,''),str): + dumpStr = json.dumps(paramData.get(key_name),separators=(',',':')) + if key_name == 'data': + return md5(dumpStr.encode()).hexdigest() + else: + return dumpStr + else: + return paramData.get(key_name,'') + + keyword_ls = ['utdid','uid','reqbiz-ext','appKey','data','t','api','v','sid','ttid','deviceId','lat','lng','x-features'] + if paramData.get('extdata'): + keyword_ls.insert(-1,'extdata') + data = list(map(resovle,keyword_ls)) + sign_str = '&'.join(data) + + return sign_str + + def addHeader(self,headers:dict={}): + default_headers = { + 'x-mini-wua':'HHnB_3P3rpjjITYyMfTtldI+UFRpOScjy799La90R\/mybecdU56yAvaqEmEy46f5uQUCDcnIiqfJxLzP4vM0BxDClP8zD\/6RHI1z8StNM6Uqo73b2GC7KN7bQuM\/fXcQeS463', + 'x-ttid':'700169@travel_android_9.2.5', + 'x-features-':'27', + 'x-appkey':'12663307', + 'x-pv':'' + } + self.headers.update(default_headers) + self.headers.update(headers) + return + + + # 不能使用静态方法来作为装饰器 + # @staticmethod + def retry(function,token_name:str='taobaoToken'): + '''token重新获取装饰器,且token名可能更换,function是被装饰的函数''' + + # print(token_name,function) + @functools.wraps(function) + def decorator(self,*args,**kw): + '''self现在变成了显式的传递''' + # print(args,kw) + url = 'http://ip.11jsq.com/index.php/api/entry?method=proxyServer.generate_api_url&packid=0&fa=0&fetch_key=&qty=1&time=100&pro=&city=&port=1&format=json&ss=5&css=&ipport=1&dt=1&specialTxt=3&specialJson=' + if not hasattr(self,'_proxy'): + self._proxy = {'time':datetime.datetime.now(),'proxy':self.__get_proxy(url)} + try: + res = function(self,*args,**kw) + except ProxyError as e: + print(e,'代理无效') + self._proxy.update({'time':datetime.datetime.now(),'proxy':self.__get_proxy(url)}) + print('代理IP切换') + res = function(self,*args,**kw) + if 'FAIL_SYS_TOKEN_EMPTY' in res: + self.app_config['taobaoToken'] = self.getToken() + return function(self,*args,**kw) + elif 'FAIL_SYS_USER_VALIDATE' in res or (datetime.datetime.now().minute - self._proxy['time'].minute): + #代理IP检查,如果返回的数据不是正常的,或者是代理IP的使用时间到了1分钟,则切换代理IP + self._proxy.update({'time':datetime.datetime.now(),'proxy':self.get_proxy(url)}) + print('代理IP切换') + return function(self,*args,**kw) + return res + return decorator + + + # def start_thread(self,func,**kw): + # '''启动一个暗中运行的线程 + # 接受一个函数,然后传递其他参数决定在什么时候运行,以及运行的次数 + # 但是现在是无法访问停止状态,线程里面的函数如果没有显示的监听那么将会访问不到停止状态,不能从外部停止 + # 感觉没个鸟用 + # ''' + # def run(func,**args){ + # times = args.get('times',1) + # interval = args.get('seconds',1) + # while times and self.stop_event.isSet(): + # times -= 1 + # func(*args.get('args',())) + # self.stop_event.wait(interval) + # } + # thread = Thread(target=run,args=(func,),kwargs=kw) + # return thread + + + def addLogger(self,name:str,callback:'回调函数'=None): + '''添加日志监听器 + name是属性名或者是函数名 + callback是匹配到名称之后如果有设置回调函数则返回回调函数 + ''' + pass + + + +if __name__ == '__main__': + base = Base() + res = base.app_sign('aa',data={'v': '1.0', 'deviceId': 'AiXb03Jh5K0C_vSLWC-u2MasOk_76QEfvIpiCMqJKlAl', 'appKey': '21783927', 'sid': 'null', 't': '1545462522', 'data': {}, 'api': 'mtop.taobao.aplatform.weakget', 'utdid': 'XBNj6B3lKccDAOjKwIsds5d9', 'uid': 'null', 'ttid': '10035437@etao_android_8.8.8', 'x-features': 27}) + print(res) + + + + diff --git a/taobao/taobao/__init__.py b/taobao/taobao/__init__.py new file mode 100644 index 0000000..bd3fb5d --- /dev/null +++ b/taobao/taobao/__init__.py @@ -0,0 +1,5 @@ +# coding:utf-8 + +#__all__针对的是import * + +__all__ = ['淘宝APPapi','淘宝H5API','淘宝开放平台API','淘宝通用API'] \ No newline at end of file diff --git "a/taobao/taobao/\344\272\254\344\270\234.py" "b/taobao/taobao/\344\272\254\344\270\234.py" new file mode 100644 index 0000000..62e432a --- /dev/null +++ "b/taobao/taobao/\344\272\254\344\270\234.py" @@ -0,0 +1,84 @@ +# coding:utf-8 + + +from __future__ import absolute_import + + +try: + from .SDK基类 import Base +except ImportError: + from SDK基类 import Base + +from time import time,sleep +from threading import Thread +import json + +import matplotlib.pyplot as plt +import matplotlib.image as mpimg +import numpy as np +from io import BytesIO + +class JD(Base): + + def __init__(self): + super(JD,self).__init__() + self.headers.update({ + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36', + 'Referer':'https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F' + }) + + # def g_tk(self,string:str=None,cookieName:str='wq_skey'): + # if not string: + # string = self.cookies.get(cookieName,'') + # r = 5381 + # for t in range(len(string)): + # r += (r << 5) + ord(string[t]) + # return 2147483647 & r + def g_tk(self,string:str=None,cookieName:str='wq_skey'): + if not string: + string = self.cookies.get(cookieName,'') + r = 5381 + for t in range(len(string)): + r += (r << 5) + ord(string(t)) + return 2147483647 & r + + def login(self): + t = int(time()*1000) + url = f'https://qr.m.jd.com/show?appid=133&size=147&t={t}' + img = self.get(url).content + return img + + def checkState(self,cookieName:str='wlfstk_smdl',timeout=30): + token = self.cookies.get(cookieName) + def run(): + nonlocal timeout + while timeout > 0: + res = self.get(f'https://qr.m.jd.com/check?callback=a&isNewVersion=1&_format_=json&appid=133&token={token}',headers=self.head) + data = json.loads(res.text[2:-1]) + if data['code'] == 200: + ticket = data['ticket'] + res = self.get(f'https://passport.jd.com/uc/qrCodeTicketValidation?t={ticket}',headers=self.head) + data = json.loads(res.text) + if not data['returnCode']: + print(data['url']) + res = self.get(data['url'],headers=self.head) + break + else: + print(data['msg']) + timeout -= 1 + sleep(1) + thr = Thread(target=run) + return thr + + + +if __name__ == '__main__': + jd = JD() + img = jd.login() + plt.imshow(mpimg.imread(BytesIO(img))) + plt.show() + thr = jd.checkState() + thr.start() + thr.join() + res = jd.get(f'https://wq.jd.com/user/info/QueryJDUserInfo?sceneid=80027&sceneval=2&g_login_type=1&g_tk={jd.g_tk()}&g_ty=ls&_format_=json',headers=jd.head) + print(res.text) \ No newline at end of file diff --git "a/taobao/taobao/\346\224\257\344\273\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" "b/taobao/taobao/\346\224\257\344\273\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" new file mode 100644 index 0000000..d823784 --- /dev/null +++ "b/taobao/taobao/\346\224\257\344\273\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" @@ -0,0 +1,23 @@ +# coding:utf-8 + +from __future__ import absolute_import + +try: + from .SDK基类 import Base +except ImportError: + from SDK基类 import Base + + + +class Alipay_openPlatform(Base): + + def __init__(self): + super(Alipay_openPlatform,self).__init__() + + def execute(self,apiname): + pass + + + +if __name__ == '__main__': + pass \ No newline at end of file diff --git "a/taobao/taobao/\346\267\230\345\256\235APP.py" "b/taobao/taobao/\346\267\230\345\256\235APP.py" new file mode 100644 index 0000000..a361abb --- /dev/null +++ "b/taobao/taobao/\346\267\230\345\256\235APP.py" @@ -0,0 +1,33 @@ +# coding:utf-8 + +from __future__ import absolute_import + + +try: + from .SDK基类 import Base +except ImportError: + from SDK基类 import Base +from collections import OrderedDict + +class TB_APP(Base): + + def __init__(self,config:dict={ + "domain":"https://acs.m.taobao.com" + }): + '''淘宝app类暂时不做更改,因为暂时也是无用''' + self.config = config + self.appConfig = { + 'trip':'' + } + super(TB_APP,self).__init__() + + def getAppkey(self,Appname:str): + return self.appConfig.get(Appname,'21646297') + + def execute(self,datas:dict): + pass + + + +if __name__ == "__main__": + ts = TB_APP() \ No newline at end of file diff --git "a/taobao/taobao/\346\267\230\345\256\235H5.py" "b/taobao/taobao/\346\267\230\345\256\235H5.py" new file mode 100644 index 0000000..0e0674b --- /dev/null +++ "b/taobao/taobao/\346\267\230\345\256\235H5.py" @@ -0,0 +1,91 @@ +# coding:utf-8 + +from __future__ import absolute_import + + +try: + from .SDK基类 import Base +except ImportError: + from SDK基类 import Base + +from time import time +import json +from collections import OrderedDict +from urllib.parse import urljoin +import re + + + +class TB_H5(Base): + + def __init__(self,config={ + "domain":"https://h5api.m.taobao.com", + "path":"h5", + "appkey":"12574478", + "loginURL":"https://login.taobao.com/member/login.jhtml", + "redirectURL":"https://www.taobao.com/", + "method":"get" + }): + super(TB_H5,self).__init__() + self.config = config + self.__first() + + def execute(self,datas:dict): + + data = datas.pop('data',{}) + data_str = json.dumps(data,separators=(',',':')) + t = str(int(time() * 1000)) + appkey = self.config.get('appkey') + domain = re.findall(r'\.[a-zA-Z0-9]+\.[a-z]+$',self.config['domain']) + domain = domain[0] if domain else '.taobao.com' + sign = self.h5_sign(self.getCookie(domain=domain),t,appkey,data_str) + datas.update({'sign':sign,'data':data_str,'t':t,'appkey':appkey}) + + options = OrderedDict() + options['method'] = datas.get('method','get') + if self.config.get('path').find('/rest/') > -1: + url = '/'.join([self.config.get('domain'),self.config.get('path')]) + else: + url = '/'.join([self.config.get('domain'),self.config.get('path'),datas.get('api').lower(),datas.get('v')]) + options['url'] = url + if options['method'] == 'get': + options['params'] = datas + else: + options['data'] = datas + res = self.request(**options) + return res + + + def __first(self,domain:str='https://h5api.m.taobao.com',url:str="/h5/mtop.taobao.wireless.home.load/1.0/?appKey=12574478"): + ''' + 必须首先请求一个api来获取到h5token + 有多个API时,需要先获取多个API下面的token + 如果是https://h5api.m.tmall.com下的API也是需要先获取token的 + ''' + res = self.get(urljoin(domain,url)) + return res + + +if __name__ == '__main__': + + tb = TB_H5({ + "domain":"https://h5api.m.taobao.com", + "path":"h5", + "appkey":"12574478", + "loginURL":"https://login.taobao.com/member/login.jhtml", + "redirectURL":"https://www.taobao.com/", + "method":"get" + }) + res = tb.execute({ + 'api':'mtop.taobao.detail.getdetail', + 'v':'6.0', + 'jsv':'2.4.8', + 'dataType':'json', + 'type':'json', + 'ttid':'2017%40taobao_h5_6.6.0', + 'AntiCreep':'true', + 'data':{ + 'itemNumId':'585559878166' + } + }) + print(res.text) \ No newline at end of file diff --git "a/taobao/taobao/\346\267\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" "b/taobao/taobao/\346\267\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" new file mode 100644 index 0000000..6f549e5 --- /dev/null +++ "b/taobao/taobao/\346\267\230\345\256\235\345\274\200\346\224\276\345\271\263\345\217\260.py" @@ -0,0 +1,83 @@ +# coding:utf-8 + +from __future__ import absolute_import + +try: + from .SDK基类 import Base + from ..util.config import TSDKError +except ImportError: + from SDK基类 import Base + +from util.config import TSDKError +from collections import OrderedDict +import time +import json + +class TB_openPlatform(Base): + '''淘宝开放平台的API,用来解析开放平台的配置''' + + # def __init__(self,name:'该函数的名称',user_config:'用户配置信息'={},env:"开放平台环境配置"={},req_config:'函数配置信息'={},**kw): + # '''接受两个配置,一个是用户配置信息,另一个是函数的参数配置信息''' + # super(淘宝开放平台,self).__init__() + # #用户参数配置 + # self.user_config = user_config + # #环境参数配置 + # self.env = env + # #请求参数存放,然后需要对参数进行转换 + # self.req_config = req_config + # #请求方式 + # self.method = 'get' or 'post' + # self.publicParams(); + + def __init__(self,config:dict={ + "appkey":"25263570", + "appsecret":"36b3bddb45f177575f63511b54c9e655", + "url":"https://eco.taobao.com/router/rest" + }): + '''传入开放平台的配置''' + super(TB_openPlatform,self).__init__() + self.config = config + + def __init(self): + self.public_params = OrderedDict() + if not self.config['appkey'] or not self.config['appsecret']: + raise TSDKError('缺少appkey或appsecret') + self.public_params.update({'app_key':self.config['appkey']}) + self.public_params.update({'sign_method':'md5' or 'hmac'}) + self.public_params.update({'timestamp':time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())}) + self.public_params.update({'v':'2.0'}) + self.public_params.update({'format':'json'}) + + def execute(self,apiname:str,datas:dict): + options = OrderedDict() + #初始化公共参数 + self.__init() + datas.update(self.public_params) + datas.update({'method':apiname}) + if datas.get('sign_method','md5') == 'hmac': + sign = self.open_Hmacsign(self.config.get('appsecret',None),datas) + else: + sign = self.open_Md5sign(self.config.get('appsecret',None),datas) + datas.update({'sign':sign}) + + options.update({'url':self.config['url']}) + options.update({'method':'get'}) + options.update({'params':datas}) + + res = self.request(**options) + return res + + + + + +if __name__ == '__main__': + + tb = TB_openPlatform() + res = tb.execute('taobao.tbk.item.get',{ + 'fields':'num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,volume,nick', + 'q':'女装', + 'cat':'16,18' + }) + print(res.text) + diff --git a/taobao/util/__pycache__/__init__.cpython-37.pyc b/taobao/util/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000..05c9b86 Binary files /dev/null and b/taobao/util/__pycache__/__init__.cpython-37.pyc differ diff --git a/taobao/util/__pycache__/tools.cpython-37.pyc b/taobao/util/__pycache__/tools.cpython-37.pyc new file mode 100644 index 0000000..f57d9d2 Binary files /dev/null and b/taobao/util/__pycache__/tools.cpython-37.pyc differ diff --git a/taobao/util/config.py b/taobao/util/config.py new file mode 100644 index 0000000..547c319 --- /dev/null +++ b/taobao/util/config.py @@ -0,0 +1,52 @@ +# coding:utf-8 + +# 目的:作为统一的配置加载,由这个来控制配置文件的更新以及导出 +# 第一:文件检查,首先检查有没有配置文件对象,如果没有下载配置文件然后更新文件对象 +# 第二:时间判断,请求文件获取到请求的缓存时间然后比对文件的创建时间,如果比创建时间大那么启动更新 + + +import datetime +import pathlib +import os + +class FileUpdate(object): + + def __init__(self): + self.time = datetime.datetime.now() + + def __get__(self,instance,instance_type): + pass + + def __set__(self,instance,value): + pass + + + +class Config(object): + + def __init__(self): + self.H5_configURL = '' + self.Config_manager = {} + + def getConfig(self,name): + return self.Config_manager.get(name,'') + + + +class TSDKError(Exception): + + def __init__(self,errInfo): + super().__init__(self) + self.errinfo = errInfo + + def __setError(self): + pass + + def __str__(self): + return self.errinfo + + + + +if __name__ == '__main__': + pass \ No newline at end of file diff --git a/taobao/util/tools.py b/taobao/util/tools.py new file mode 100644 index 0000000..a68f1d1 --- /dev/null +++ b/taobao/util/tools.py @@ -0,0 +1,236 @@ +# coding:utf-8 + + +from types import FunctionType,LambdaType,CodeType +from functools import wraps +from threading import Thread +from ctypes import c_uint32,c_int32 +import math + + +class Tool(object): + ''' + 准备使用装饰器控制请求的重放,但是还是没想好由外部控制还是内部设定 + ''' + def __init__(self,func): + wraps(func)(self) + self.ncalls = 0 + + def __call__(self,*args,**kw): + self.ncalls += 1 + return self.__wrapped__(*args,**kw) + + def __get__(self,instance,cls): + if instance is None: + return self + else: + return types.MethodType(self,instance) + + +class Logs(object): + pass + +class Retry(object): + + def __init__(self,log:bool=False,format:str='',callback:FunctionType=None): + self.log = log + self.format = format + self.callback = callback + + def __call__(self,func,*args,**kw): + + @wraps(func) + def wrapper(obj,**kw): + res = func(obj,**kw) + print('Ending') + res = self.callback(res,obj) if self.callback else res + return res + return wrapper + +@Retry() +def execute(**kw): + print(kw) + return kw + +class G: + @Retry() + def execute(self,**kw): + return kw + + +class BackThread(Thread): + + def __init__(self,func,args:tuple=()): + super(BackThread,self).__init__() + self.func = func + self.args = args + + def run(self): + self.result = self.func(*self.args) + + def get_result(self): + Thread.join(self) + try: + return self.result + except Exception: + return None + + +class Encry(object): + + def __init__(self): + '''淘宝H5登录的一些js加密转成了python''' + pass + + def encrypt(self,code): + n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + s = '' + l = 0 + while l < len(code): + try: + t = ord(code[l]) + except IndexError as e: + t = 0# t = math.nan + l += 1 + try: + r = ord(code[l]) + except IndexError as e: + r = 0 # r = math.nan + l += 1 + try: + i = ord(code[l]) + except IndexError as e: + i = 0 # i = math.nan + l += 1 + o = t >> 2 + a = (3 & t) << 4 | r >> 4 + # if type(r) or type(i) == 'float': + # print(r,i) + u = (15 & r) << 2 | i >> 6 + c = 63 & i + if r == 0: + u = c = 64 + else: + c = 64 if i == 0 else c + s = s + n[o] + n[a] + n[u] + n[c] + # print(s) + return s + + def int_overflow(self,val): + '''这个函数可以得到32位int溢出结果,因为python的int一旦超过宽度就会自动转为long,永远不会溢出,有的结果却需要溢出的int作为参数继续参与运算''' + maxint = 2147483647 + if not -maxint-1 <= val <= maxint: + val = (val + (maxint + 1)) % (2 * (maxint + 1)) - maxint - 1 + return val + + def unsigned_right_shitf(self,n,i): + # 数字小于0,则转为32位无符号uint + if n<0: + n = c_uint32(n).value + # 正常位移位数是为正数,但是为了兼容js之类的,负数就右移变成左移好了 + if i<0: + return -self.int_overflow(n << abs(i)) + #print(n) + return self.int_overflow(n >> i) + + def left_move(self,a,bit): + return c_int32(a << bit).value + + def ROTL(self,e,t): + return self.left_move(e,t) | self.unsigned_right_shitf(e,32 - t) + + def toHexStr(self,e): + n = '' + for r in range(7,-1,-1): + t = c_int32(self.unsigned_right_shitf(e,4 * r)).value & c_int32(15).value + n += hex(t)[2:] + return n + + def f(self,e,t,n,r): + '''这里的值计算出来好像没有问题,但是为什么会没有问题?''' + if e == 0: + return t & n ^ ~t & r + elif e == 1: + return t ^ n ^ r + elif e == 2: + return t & n ^ t & r ^ n & r + elif e == 3: + return t ^ n ^ r + + def hash_encrypt(self,code,status=False): + if not status: + code = self.encrypt(code) + + r = [1518500249, 1859775393, 2400959708, 3395469782] + code += chr(128) + u = len(code) / 4 + 2 + c = math.ceil(u / 16) + s = [None] * c + for i in range(c): + s[i] = [None] * 16 + for a in range(16): + try: + _a = self.left_move(ord(code[64 * i + 4 * a]),24) + except IndexError: + _a = 0 + try: + _b = self.left_move(ord(code[64 * i + 4*a + 1]),16) + except IndexError: + _b = 0 + try: + _c = self.left_move(ord(code[64 * i + 4 * a + 2]),8) + except IndexError: + _c = 0 + try: + _d = ord(code[64 * i + 4 * a + 3]) + except IndexError: + _d = 0 + + s[i][a] = _a | _b | _c | _d + s[c - 1][14] = 8 * (len(code) -1) / math.pow(2,32) + s[c - 1][14] = math.floor(s[c - 1][14]) + s[c - 1][15] = 8 * (len(code) - 1) & 4294967295 + m = 1732584193 + g = 4023233417 + v = 2562383102 + T = 271733878 + S = 3285377520 + C = [None] * 80 + for i in range(c): + for o in range(16): + C[o] = s[i][o] + for o in range(16,80): + C[o] = self.ROTL(C[o -3] ^ C[o - 8] ^ C[o - 14] ^ C[o - 16],1) + l = m + f = g + d = v + p = T + h = S + for o in range(80): + y = math.floor(o / 20) + B = self.ROTL(l,5) + self.f(y,f,d,p) + h + r[y] + C[o] & 4294967295 + h = p + p = d + d = self.ROTL(f,30) + f = l + l = B + m = c_int32(m + l).value & c_int32(4294967295).value + g = c_int32(g + f).value & c_int32(4294967295).value + v = c_int32(v + d).value & c_int32(4294967295).value + T = c_int32(T + p).value & c_int32(4294967295).value + S = c_int32(S + h).value & c_int32(4294967295).value + + return self.toHexStr(m) + self.toHexStr(g) + self.toHexStr(v) + self.toHexStr(T) + self.toHexStr(S) + + + + + +if __name__ == '__main__': + res = G().execute(a=3,b=4,c=5) + print(res) + + + + + diff --git "a/taobao/util/\346\267\230\345\256\235API\346\226\207\346\241\243\350\247\243\346\236\220.py" "b/taobao/util/\346\267\230\345\256\235API\346\226\207\346\241\243\350\247\243\346\236\220.py" new file mode 100644 index 0000000..6441a1e --- /dev/null +++ "b/taobao/util/\346\267\230\345\256\235API\346\226\207\346\241\243\350\247\243\346\236\220.py" @@ -0,0 +1,127 @@ +# coding:utf-8 + +import json +import requests +import aiohttp +import aiofiles +import asyncio +# from collections import OrderedDict + +class Resovle(object): + '''解析淘宝api文档''' + def __init__(self,json_body): + self.body = json.loads(json_body) + self.save_func = {} + + def getdata(self,body:dict={}): + data = body or self.body + if not data.get('success',None): + return {} + data = data.get('data',{}) + self.funcname = data.get('apiChineseName','未知应用') + self.save_func[self.funcname] = {} + for item in data: + + # if item == 'apiChineseName': + # self.funcname = data[item] + # self.save_func[self.funcname] = {} + if item == 'name': + self.save_func[self.funcname][item] = data[item] + + if item == 'description': + self.save_func[self.funcname][item] = data[item] + #不需要公共参数,因为数据对象没有表明自己是否需要授权,无法判断 + # if item == 'publicParams': + # #公共参数的添加 + # if not self.save_func[self.funcname].get('publicParams',None): + # self.save_func[self.funcname]['publicParams'] = [] + # for pubparams in data.get(item,[]): + # if pubparams['required']: + # self.save_func[self.funcname]['publicParams'][pubparams['name']] = pubparams['required'] + + if item == 'requestParams': + #请求参数的添加 + if not self.save_func[self.funcname].get('requestParams',None): + self.save_func[self.funcname]['requestParams'] = [] + for params in data.get('requestParams',[]): + self.save_func[self.funcname]['requestParams'].append({ + 'name':params['name'], + 'value':params['demoValue'], + "description":params['description'], + 'required':params['required'] + }) + + return self.save_func + +class 淘宝API解析(object): + + def __init__(self): + self.req = requests.Session() + # self.cli_session = aiohttp.ClientSession() + self.head = { + 'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36', + 'x-requested-with': 'XMLHttpRequest' + } + self.cookie = { + '_tb_token_':'f7bd3bee37ee5' + } + + def getAllapi(self): + '''获取淘宝所有的API文档,然后再使用异步下载单独命名存储为配置对象文件''' + res = self.req.get('https://open.taobao.com/handler/document/getApiCatelogConfig.json?scopeId=&treeId=&docId=&docType=&_tb_token_=f7bd3bee37ee5',cookies=self.cookie) + data = json.loads(res.content) + if data.get('success',None): + if data.get('data',{}).get('treeCategories',[]): + print(data.get('data',{}).get('treeCategories',[])[0]['name']) + return data.get('data',{}).get('treeCategories',[])[0]['catelogTrees'] + else: + return data + + async def getDetail(self,docId,docType): + '''使用异步下载api文档''' + url = f'https://open.taobao.com/handler/document/getDocument.json?treeId=&docId={docId}&docType={docType}&_tb_token_={self.cookie["_tb_token_"]}' + async with aiohttp.ClientSession(cookies=self.cookie) as cli_session: + async with cli_session.get(url) as res: + # with aiofiles.open(file_name,'wb') as f: + # f.write(await res.read()) + body = await res.read() + json_res = Resovle(body.decode('utf-8')) + return json_res.getdata() + + async def main(self): + '''''' + res = self.getAllapi(); + if isinstance(res,dict): + print(res) + return + for item in res: + dt = {} + name = item.get('name',None) or item.get('treeName',None) + if name not in ['淘宝客API','淘宝搜索API','会员中心API','淘宝卡券平台','商户API','手淘分享','手机淘宝API']: + continue + for doc_item in item.get('catelogList',[]): + res = await self.getDetail(doc_item.get('docId',285),doc_item.get('docType',2)) + dt.update(res) + # async with aiofiles.open(name += '.json','wb') as f: + # await f.write(json.dumps(dt)) + with open(name + '.json','w') as f: + # f.write(json.dumps(dt)) + json.dump(dt,f) + + + + + +if __name__ == '__main__': + # with open('./tbk.json',encoding='utf-8') as f: + # jstr = f.read() + # resovle = Resovle(jstr) + # res = resovle.getdata() + loop = asyncio.get_event_loop() + ts = 淘宝API解析() + loop.run_until_complete(ts.main()) + loop.close() + # res = ts.getAllapi() + # for item in res: + + # print(res) diff --git "a/taobao/\346\211\276\345\210\260\347\232\204\346\216\245\345\217\243.md" "b/taobao/\346\211\276\345\210\260\347\232\204\346\216\245\345\217\243.md" new file mode 100644 index 0000000..2d7437d --- /dev/null +++ "b/taobao/\346\211\276\345\210\260\347\232\204\346\216\245\345\217\243.md" @@ -0,0 +1,2422 @@ +### 找到的淘宝KEY和密钥 + 1 + 2 user2: 'appkey':'23021137','appsecret':'2092fca6ee2d8613ad79dcf44b60630e' + 3 只有在请求API的时候,服务器才会返回token,token的域不一样,token不能混用 + 4 是使用API无法获取到数据的时候,要交叉验证,判断浏览器上的请求和程序有什么不一样,有的是携带了cookie参数才可以的 + 5 'appkey':'CF_APP_TBLogin_PC' + 6 "x-appkey\":\"21796520\" 抓包找到的app请求key,这个并不是请求携带的,可能是内部生成使用的,appsecret:ca858373d2508cb8e8c49aed307ee019 反编译生成的,这个不是默认的,而是内部生成的,在内部找到的默认SIGN_KEY = "2138079021646297";, + 新找到的:appKey:12621186 appKeyDaily:4272,淘宝apk解包找到的PUSH_KEY=23094978 +PUSH_SECRET=242f7207060f4f26b065f88c571bf8ef + appkey:12621186 是掌上旺信android 应用 + appkey:23021137 测试专用请勿使用 + appkey:12574478 手机淘宝网html5版本 + appkey:21646297 淘宝主客户端Android_Android + appkey:12278902 android客户端接入本地聚划算 + appkey:23228014 盒马手机客户端_Android + appkey:21549244 taoke客户端 + + #可重复使用的ua,可以使用抓包软件在实现一次登陆之后获得 + self.ua = '107#ssPxCsS9stStAsNzPuRrXzT1lnIygOHxkKFXvIZd0ssV7XG9lu8dDXqX6r1LpV8VrXhXGIZd8syxxXGh/eEtXKZA6n1y9uG9V8qXPfZZgPdvVvJZ6ajfsYvxQy/y6/RQntw+iHCXetHNrmSSviPRN/iyhtOE4GrTCV6+Ws5xmWwXo9Lqr+pNk304Nedrewo+NLnOXIvuAZC/sbR1NSCXXQJWbLcmQKXlE8TOlXlkXFFQPcWEfJXlllEXIL1N1XFX+4EPl0fuXEnoVEp7yyrx86JWhDAAQTuzeegJG/gI8Kl8+B/LyyVA3TI3cBfddLl9FaQgC3idCJ+Lg9VG7BQbZyI3cBfddmrQtuDr8AnyudqK2lWB7yEmoxxoE0B8DmhBqWTht/Kco03n7EHj7EEgtfZ8fJahDvQjbeydhej13mXKBQMD7T+2hvIex2kX0vpyt3nErCi/uiyOgTVkJ2eitgdXv7Br8deewC/H3oCHIfub2BCWmDHnt01ql58jbgyVqnQtZY3jwZub25Cnkvy6ZckGFJGRIZQyhCOFbn9186eWgKQH6y/7hZRvcvAZl6giaunwe+9186eWgKQzyii/8xNIvJ7f1dqHCVCEuWnEukW27lOV2EC/32sC1kPwEvh+qqiowwpnd9OnsXHBByQnC5d8Zi0YvmgYtCHGqqjx3yEy7jMBsxhkucwSZZIuffQja/nIGnFq86yy7jMBsXuf8BNaQJxGI1+2wNj/G/pu819HRggOBDedGf0CdBURIvpjeeghlalF9BQLmEuJs1Hk8Q1+bKcRQFD7IIm3rN/DPKJMP74dI/3XXlx+bLZ=' +### 找到的schame链接 + 1 taobao:// 淘宝唤起链接 + 2 alipays://platformapi/startapp?appId=20000067&url= 支付宝唤起链接 + 3 tmall://page.tm/webview?url= 天猫唤起链接 + 4 youku://http?url= 优酷唤起链接 + 5 taobaolite:// 海外淘宝唤起链接 + 6 tbopen://page.tm/appLink?action=ali.open.nav&module=h5&bootImage=0&source=sb&appkey=24585446¶ms={"fid":"[object Object]","mtopCostTime":"233","uiKey":"wdj","_t":"1537453355294"}&_ns=1&ut_sk=3.1537453355294.other_iOS9.click-mallDetail-0&h5Url= 淘宝唤起链接,可通过淘宝跳转到其他应用,params参数需要urlencode + 7 itms-appss://itunes.apple.com/cn/app/qian-niu-mai-jia-yi-dong-gong/id590217303?mt=8&spm=a2114k.8709398.0.0 h5网页启动千牛下载 + + +http://h5.m.taobao.com/app/searchsimilar/www/tbsimilar/index.html?from=tbsearch&nid=564892185165&q=男外套 + +- nid 宝贝ID +- q查询的参数 + + +### 获取店铺其下宝贝的其他宝贝 + +- https://detailskip.taobao.com/json/wap/tmallH5Desc.do?itemId=566707611744&sellerId=255921860&isPreview=false + +### 获取店铺下的宝贝 + - http://aladdin.alicdn.com/bottom/03194/sellerId=741445859/data.jsonp + sellerId是店铺ID,此链接不一定可用,或许会随时间失效 + +- itemId 是宝贝ID,sellerId是店铺ID + +## 查询关键词获取到宝贝 + +- https://s.taobao.com/api?ajax=true&m=customized&q=%E6%89%8B%E7%94%B5%E7%AD%92&s=36&initiative_id=20180728 + +- q是关键词 s是翻页,不过获取到的数据只有几个是显示 m是API的名称,意思为定制 initiative_id应该是时间期限 + +### 获取宝贝的一些信息,例如月销售量 + - https://mdskip.taobao.com/core/initItemDetail.htm?itemId=563740702710&callback + callback必须要,否则不返回数据 + +## 将链接转换成短链接,此API不是淘宝的官方API + +- http://tao.bb/api/Create POST请求 contentType是json 参数 url:'网址链接' 返回的key和http://tao.bb/{key}拼在一起 + +## API生成二维码,可生成阿里妈妈、淘宝、支付宝二维码 + * iframe加载地址的参数有时会变 + https://login.taobao.com/member/login.jhtml?style=mini&newMini2=true&css_style=alimama_index&from=alimama&redirectURL=http%3A%2F%2Fwww.alimama.com&full_redirect=true&disableQuickLogin=true + - 这是阿里妈妈的 + 1 https://qrlogin.taobao.com/qrcodelogin/generateQRCode4Login.do?from=alimama&appkey=00000000 + 返回值是:{"success":true,"message":"null","url":"//img.alicdn.com/tfscom/TB1EuOeAiOYBuNjSsD4wu2SkFXa.png","lgToken":"b1e21fb103861463c248842799335ff5","adToken":"014bc72e2ed64db6b2e4c50f50cc7c60"} + + 2 https://qrlogin.taobao.com/qrcodelogin/qrcodeLoginCheck.do?lgToken=4e4683415a597990d11ca5ed3e132c5e + lgToken参数是从第一步获取的,扫码授权登录成功之后返回跳转的链接, + 返回值是:{"code":"10006","success":true,"url":"https://login.taobao.com/member/loginByIm.do?uid=cntaobao%E8%8B%B1%E9%9B%84%E4%BA%A6%E6%9E%89%E7%84%B6&token=98a2d048ddb77d6d8d5e9346c819a23d&time=1533212214503&asker=qrcodelogin&ask_version=1.0.0&defaulturl=https%3A%2F%2Fwww.taobao.com&webpas=c99a2721dd708319657c6f49d89c0a1b2062589216"} + + +### 手机版淘宝头条的URL + 1 https://market.m.taobao.com/apps/market/toutiao/portal.html + +### 获取淘宝商品的价格和一些介绍数据 + - 此url必须携带cookie请求,否则不可用,并且请求头也要设置 + 1 https://detailskip.taobao.com/service/getData/1/p1/item/detail/sib.htm?itemId=561336361080&sellerId=738336477&modules=dynStock,qrcode,viewer,price,duty,xmpPromotion,delivery,activity,fqg,zjys,couponActivity,soldQuantity,originalPrice,tradeContract + +## 淘宝的接口 + 1 https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?jsv=2.4.8&appKey=12574478&t=1535803615228&sign=fa7b5f3312f9727a25662162bf502aff&api=mtop.taobao.detail.getdetail&v=6.0&dataType=json&ttid=2017%40taobao_h5_6.6.0&AntiCreep=true&type=json&data=%7B%22itemNumId%22%3A%224362046464%22%7D + - 获取淘宝的宝贝的主要详情信息 + - ttid是版本号 + - AntiCreep翻译为防火,默认为true + - data参数是提交的数据,itemNumId参数是宝贝的ID + + !!经测试发现,可以不用sign加密的方式直接获取宝贝详情,例如:https://h5api.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/?type=json&data=%7B%22itemNumId%22%3A%22560907522085%22%7D + + 2 http://h5api.m.taobao.com/h5/mtop.taobao.social.comment.list/2.0/?jsv=2.4.0&appKey=12574478&t=1537454875246&sign=a93f2070bf73776bf43f3bfb863176b3&api=mtop.taobao.social.comment.list&v=2.0&timeout=300000&timer=300000&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%22namespace%22%3A%2210021%22%2C%22targetId%22%3A%22200566671622%22%2C%22page%22%3A%22h5_list_all_in_mix%22%7D + - 获取某一段介绍的全部评论 + - data参数为{"namespace":"10021","targetId":"200566671622","page":"h5_list_all_in_mix"} + + 3 https://h5api.m.taobao.com/h5/mtop.mediaplatform.live.livedetail/2.0/?jsv=2.4.0&appKey=12574478&t=1537456113875&sign=85474b852b5667dff24136f110a6ca15&AntiCreep=true&AntiFlood=true&api=mtop.mediaplatform.live.livedetail&v=2.0&type=jsonp&dataType=jsonp&timeout=20000&callback=mtopjsonp3&data=%7B%22liveId%22%3A%22209306221322%22%7D + - 获取淘宝直播的房间信息 + - https://h5.m.taobao.com/taolive/video.html?id=209306221322 id并不是房间号,只是一个房间的ID + - data参数为:{"liveId":"209306221322"},需要urlencode + + 4 http://h5api.m.taobao.com/h5/mtop.relationrecommend.wirelessrecommend.recommend/2.0/?jsv=2.4.5&appKey=12574478&t=1537456886715&sign=c3c8612dc47f3d2a371e53b7c2b83c9a&api=mtop.relationrecommend.WirelessRecommend.recommend&v=2.0&type=json&dataType=jsonp&data=%7B%22appId%22%3A3982%2C%22params%22%3A%22%7B%7D%22%2C%22type%22%3A0%7D + - 获取我的足迹 此API应该需要cookie登录 + - data参数为:{"appId":3982,"params":"{}","type":0} + + 5 https://h5api.m.taobao.com/h5/mtop.order.queryboughtlist/3.0/?jsv=2.4.8&appKey=12574478&t=1537457151399&sign=a5f4639b5a8dc324daebbfb9b090d44d&api=mtop.order.queryBoughtList&v=3.0&ttid=%23%23h5&ecode=1&AntiFlood=true&AntiCreep=true&LoginRequest=true&type=json&dataType=jsonp&data=%7B%22spm%22%3A%22a2141.7756461.2.6%22%2C%22page%22%3A1%2C%22tabCode%22%3A%22all%22%2C%22appVersion%22%3A%221.0%22%2C%22appName%22%3A%22tborder%22%7D + - 获取我的订单 此API应该需要cookie登录 + - data参数为:{"spm":"a2141.7756461.2.6","page":1,"tabCode":"all","appVersion":"1.0","appName":"tborder"},需要urlencode + + 6 https://t.alicdn.com/t/gettime?callback=jsonp509 + - 获取淘宝服务器时间戳 + - callback参数无法去除,返回的不是json格式 + + 7 https://h5api.m.taobao.com/h5/mtop.taobao.geb.shopinfo.queryshopinfo/2.0/?jsv=2.4.2&appKey=12574478&t=1538199826074&sign=c39003f5006eac749d2c1d6a7673734a&api=mtop.taobao.geb.shopinfo.queryshopinfo&v=2.0&type=originaljson&timeout=3000&AntiCreep=true&dataType=json&H5Request=true&data=%7B%22sellerId%22%3A2248971852%7D + - 获取店铺信息,这个只是基本信息,并没有粉丝数这样的数据 + - data参数是:{"sellerId":2248971852} + + 8 http://h5api.m.taobao.com/h5/mtop.geb.view.getpageview/2.0/?jsv=2.4.2&appKey=12574478&t=1538200006802&sign=49f9312957a1f7221097a61d5a803558&api=mtop.geb.view.getPageView&v=2.0&type=json&dataType=json&data=%7B%22page%22%3A%22shop%2Fnew_item_list%22%2C%22clientVersion%22%3A%2210000%22%2C%22params%22%3A%22userId%3A2248971852%22%7D + - 获取店铺上新的数据 + - data参数是:{"page":"shop/new_item_list","clientVersion":"10000","params":"userId:2248971852"} + + 9 http://h5api.m.taobao.com/h5/mtop.shop.newarrival.list.get/1.0/?jsv=2.4.2&appKey=12574478&t=1538200255723&sign=83df38d5cde5d398605a0b911e21fc0c&api=mtop.shop.newarrival.list.get&v=1.0&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%22userId%22%3A1041248422%2C%22needPreNew%22%3A%22true%22%7D + - 获取店铺上新的时间和当时的宝贝 + - data参数是:{"userId":1041248422,"needPreNew":"true"} + 10 http://h5api.m.taobao.com/h5/mtop.taobao.maserati.xplan.render/1.0/?jsv=2.4.2&appKey=12574478&t=1538200478203&sign=3f4efae7cabf6c97cb8410504ad70fe5&api=mtop.taobao.maserati.xplan.render&v=1.0&type=originaljsonp&dataType=originaljsonp&timeout=20000&callback=mtopjsonp1&data=%7B%22accountId%22%3A%222248971852%22%2C%22siteId%22%3A37%2C%22pageId%22%3A5736%2C%22fansId%22%3A%222248971852%22%2C%22status%22%3A0%2C%22currentPage%22%3A1%2C%22currentModuleIds%22%3A%22%22%7D + - 获取店铺的买家秀 + - data参数是:{"accountId":"2248971852","siteId":37,"pageId":5736,"fansId":"2248971852","status":0,"currentPage":1,"currentModuleIds":""} + - 里面的一些参数暂时还未找到 + + 11 http://h5api.m.taobao.com/h5/mtop.taobao.buyershow.queryshowbyids/1.0/?jsv=2.4.0&appKey=12574478&t=1538200613417&sign=9a5dc004c83431b50139c22cf295b67f&api=mtop.taobao.buyershow.queryShowByIds&v=1.0&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22showId%22%3A%22266945639%22%7D + - 获取买家秀的详情 + - data参数是:{"showId":"266945639"} + - showId可以从店铺的买家秀中找到 + + 12 http://h5api.m.taobao.com/h5/mtop.geb.view.getpageview/2.0/?jsv=2.4.2&appKey=12574478&t=1538201074292&sign=a7a6bd84a15728c40085a4e6cb755882&api=mtop.geb.view.getPageView&v=2.0&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22page%22%3A%22shop%2Fprom_item_list%22%2C%22clientVersion%22%3A%2210000%22%2C%22params%22%3A%22userId%3A1739642641%22%7D + - 获取店铺的优惠 + - data参数是:{"page":"shop/prom_item_list","clientVersion":"10000","params":"userId:1739642641"} + + *! 淘宝的用户数据返回字段解读 + { + basicScore:基础分, + basicScoreLast:基础分上次的数值, + tradeBonusScore:购物奖励分, + tradeBounsScoreLast:购物上次的奖励分, + tradeScore:本期购物分, + tradeScoreLast:上期购物分, + buyMoneyConvertCur:本期购物金额, + buyMoneyConvertLast:上期购物金额, + + } + + 13 https://api.m.taobao.com/h5/mtop.taobao.alistar.dimensions.getdata/1.0/?jsv=2.4.2&appKey=12574478&t=1538202938920&sign=5cd5c08ac843b9d56104f54cdd492afb&api=mtop.taobao.alistar.dimensions.getData&v=1.0&type=json&dataType=jsonp&timeout=20000&data=%7B%22ids%22%3A%22%7B%5C%22dimensions%5C%22%3A%5B3%2C0%2C1%2C2%5D%7D%22%2C%22from%22%3A%22%22%7D + - 获取用户的会员信息及账户信息及评级信息,此API可能需要cookie + - data参数是:{"ids":"{\"dimensions\":[3,0,1,2]}","from":""} 这个参数可能是固定的 + - 来源地址为:https://h5.m.taobao.com/alistar/improve.html?spm=a2131d.12535080.gofinish.dnormal&from=tqz + + 14 https://h5api.m.taobao.com/h5/mtop.vip.gold.user.customize/1.0/?jsv=2.4.2&appKey=12574478&t=1538202879057&sign=48e63cc5c0ba137fd70114442e6ff91b&api=mtop.vip.gold.user.customize&v=1.0&type=json&dataType=jsonp&data=%7B%22source%22%3A%22vipDayNew%22%7D + - 获取用户的淘气值及其他数值信息,此API可能需要cookie + - data参数是:{"source":"vipDayNew"} + + https://h5api.m.taobao.com/h5/mtop.vip.gold.user.customize/1.0/?jsv=2.4.2&appKey=12574478&t=1553235902412&sign=15632317efaf484a2881077d727fcc04&api=mtop.vip.gold.user.customize&v=1.0&type=jsonp&dataType=jsonp&timeout=20000&callback=mtopjsonp2&data=%7B%22source%22%3A%22club%22%7D + - 这个同样是获取用户淘气值信息的,不过你们有个数据是registerDays,就是注册天数,用当前时间计算之后就可以算出注册时间 + - data参数是:{"source":"club"} + + 15 https://h5api.m.taobao.com/h5/mtop.user.getusersimple/1.0/?jsv=2.4.11&appKey=12574478&t=1538203463330&sign=fcd08ccac457538483817ea4995719d6&api=mtop.user.getUserSimple&v=1.0&ecode=1&sessionOption=AutoLoginOnly&jsonpIncPrefix=liblogin&type=json&dataType=jsonp&data=%7B%7D + - 这个是新的API + https://h5api.m.taobao.com/h5/mtop.user.getusersimple/1.0/?jsv=2.4.16&appKey=12574478&t=1538378204004&sign=7922b9d68467614cc6c3bc9c1fe64798&api=mtop.user.getUserSimple&v=1.0&type=json&dataType=jsonp&data=%7B%7D + - 获取当前用户的简要信息,返回昵称和用户id,此API需要cookie + - data参数是:{} + + 16 https://h5api.m.taobao.com/h5/mtop.vip.club.default/1.0/?jsv=2.4.2&appKey=12574478&t=1538202879057&sign=3c6010a747dadbb898615df7412ba45e&api=mtop.vip.club.default&v=1.0&type=json&dataType=jsonp&data=%7B%22source%22%3A%22taobao%22%7D + - 获取当前用户的VIP信息,和一些其他基本信息,此API需要cookie + - data参数是:{"source":"taobao"} + + 17 https://h5api.m.taobao.com/h5/mtop.vip.gold.user.customize/1.0/?jsv=2.4.2&appKey=12574478&t=1538202871471&sign=c509c776b575fefdd05004ddf28a5d72&api=mtop.vip.gold.user.customize&v=1.0&type=json&dataType=jsonp&timeout=20000&data=%7B%22source%22%3A%22club%22%7D + - 获取用户数据的简要信息,此API需要cookie + - data参数是:{"source":"club"} + + 18 https://h5api.m.taobao.com/h5/mtop.taobao.cmin.mypath/1.0/?jsv=2.4.0&appKey=12574478&t=1538205115054&sign=dfa57827210447501840696b9b5046bf&api=mtop.taobao.cmin.mypath&v=1.0&timeout=5000&type=json&dataType=jsonp&data=%7B%22pageSize%22%3A20%2C%22endTime%22%3A0%7D + - 获取用户的足迹,此API需要cookie + - data参数是:{"pageSize":20,"endTime":0} + + 19 http://h5api.m.taobao.com/h5/mtop.taobao.idle.user.my.order/2.0/?jsv=2.4.9&appKey=12574478&t=1538205500472&sign=35e6d20e702c7179f8003eff1089358c&api=mtop.taobao.idle.user.my.order&v=2.0&AniCreep=true&AntiFlool=true&dataType=json&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.14&type=originaljson&data=%7B%22from%22%3A1%7D + - 获取用户近一年买过的物品,宝贝信息 + - data参数是:{"from":1} + + 20 https://ynuf.alipay.com/service/um.json + - 获取tn也就是um_token post请求 + - 参数是:data:'112!SKaa7mAKapnjWjpDE7AOCrNiMJvnQUKqpp2h4bbXRMHGbYcSejUXCP5wq/wSGBZGaKdC0bYXRMpaQqLw4zxXCMcUDQtsRlhcC7zuntT7ajHV/FS6wYzGaAkTT1GcABucnO491E01aCl7ANnBIof7HC0GlcepgCaaYD7bEU+paaiE41ubgzlaaWYE4nxSgjaa40X4EU+pSM/ZKTzGiHvQqqWETuUSOK1Z1uN/S94XS7L0hpAjFwHO45NlQ8Z5KO4lNYh4VjZVk6G3cdK7A5Ezr1gYUK59kEOSyevQOsp7LAaVH0jCTKBrMH1olMk47cmKrbBsCmow1PeGIbI9CQYuhPJzoAUotsn02tWZLOLecYfnlzxXRoeOvsTLuyHbSinetZY1tE8IpKIBOCKrD++acgxXDb8wscOHH++wq8jeegTqFI/ZSkKhxT1m8fvkITIqa4t3OZptFO0cC5+2rAYP1ANPCbf61nIFls7o1183Aq8KeVxZn0bJGSUrsSHJ460MSkNCqPIMzR9FzhCj2cQa2x5cLu3hFNHQxlmYoAA1zCBn/36Es5er6cjWoJh8ItpnVSLB8sB/ldqeSvPoaVWVZuedSwYXyV8PBC==' + 可以通过修改前面不同的数字来获取不同的tn数据 + + 21 https://login.m.taobao.com/sendMsg.do + - 发送手机验证码 post请求 + - 参数是: + TPL_username: 15623143699 + ua: 114#YJKIhcleTTobFsbr2TjKjC/0cOChL4zmwYuJIy8CBVh8XlE13ePTtCUjTqOroNLSiXLXcAOiafvnTgnH+6uSvu2J8cHscTJMwbvFoGqa35oELB5Diu2kTbmoK/D0YG0Wcv/eofNJ0GaawRK8dYQH3boavsbsnIb726gm8TfTTmJDfMon8TT9q6DmfT8byTeXYXrv8TTTminUfnoTTT8VMQ7mfTTTtmb82G3bl9867Q1eTDi+uraPffusURnsNDHeFzmHhR4/D9G0vkNmqHSptnKOR5yWvtnSJp2+8o/RFb7s2lfMsYSWDY6Byzvj5m+VsgDGAWjfDDM7K1NT9JY4uP+0bppBcWq/BlDAoawI13BAx7ymgrQwWsT4z/Fnnhx6aIO7/aXHTcFFKZ+gmQVKdplqI1Y91v2EHBS5kRI2huUnjvcwWzGYqle5FvwyOdoZ1gEqzHO+gSCeux8xWV+JhF/77hMGuJEZYCxb3ccDwmdk15nOAwNPFwZTytDDcTgEaVPE7/kl/Oh4wpxF59JSDxVrThgeAMsUnbo1sn7qtvDO/dmxFlRrVkig + um_token: HV02WAAZ0b00ac7a3a13174c5c08d26800e284f1100024 + ua参数可以使用固定数据,然后um_token可以用ua参数去获取到 + + 22 https://api.m.taobao.com/h5/mtop.taobao.alistar.dimensions.getdata/1.0/?jsv=2.4.2&appKey=12574478&t=1552455578105&sign=5b3bed0fbd4beafda0540f0ec787f419&api=mtop.taobao.alistar.dimensions.getData&v=1.0&type=jsonp&dataType=jsonp&timeout=20000&callback=mtopjsonp1&data=%7B%22ids%22%3A%22%7B%5C%22dimensions%5C%22%3A%5B3%2C0%2C1%2C2%5D%7D%22%2C%22from%22%3A%22%22%7D + - 获取信用评级数据 + - data参数为:"{"ids":"{\"dimensions\":[3,0,1,2]}","from":""}" + - 来源地址为:https://h5.m.taobao.com/alistar/improve.html?spm=a2131d.12535080.gofinish.dnormal&from=tqz + - 来源地址为:https://h5.m.taobao.com/alistar/intro.html?spm=a2131d.12535080.0.0&from=tqz + + 23 https://h5api.m.taobao.com/h5/mtop.taobao.alistar.dimensions.getdata/1.0/?jsv=2.4.2&appKey=12574478&t=1552553114611&sign=0ac8ae6468dfa3f6ea1a861cce444c40&api=mtop.taobao.alistar.dimensions.getData&v=1.0&type=jsonp&dataType=jsonp&timeout=20000&callback=mtopjsonp1&data=%7B%22ids%22%3A%22%7B%5C%22dimensions%5C%22%3A%5B1%5D%7D%22%7D + - 获取认证数据,用来判断是否已经实人认证和是否支付宝实名认证 + - status为认证的状态,NORMAL是已完成认证,PENDING是未完成认证 + + 24 https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=mtopjsonp6&type=jsonp&api=mtop.d4s.service.ExternalizationService.queryStarLevel&v=1.0&data=%7B%22bid%22%3A1004827%2C%22vid%22%3A%22f17e4f92ddeee7d2d89eaf1936f806c2%22%7D&ecode=1&type=get&dataType=jsonp&appKey=12574478&t=1552554320651&sign=3d802bbee27685833597f8840bd47ca9 + - 获取购物评级数据 + - resutlData就是指星级了,3星 + - 来源地址为:https://h5.m.taobao.com/vip/home.html + + 25 https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=mtopjsonp1&type=jsonp&api=mtop.taobao.vip.privilege.getVipInfo&v=1.0&data=%7B%7D&ecode=0&type=get&dataType=jsonp&appKey=12574478&t=1552554318966&sign=17a9befb2e2ea7d8e67455ca02d64c2f + - 获取VIP信息 + - vipCount是成长值 + + 26 https://h5api.m.taobao.com/h5/mtop.trip.train.translistsearch/1.0?type=originaljson&api=mtop.trip.train.translistsearch&v=1.0&data=%7B%22depLocation%22%3A%22%E6%AD%A6%E6%B1%89%22%2C%22arrLocation%22%3A%22%E5%AD%9D%E6%84%9F%E4%B8%9C%22%2C%22depDate%22%3A%222019-03-20%22%2C%22sortType%22%3A0%2C%22filtSameStation%22%3A0%2C%22filtMiddleCity%22%3A%22%22%2C%22filtTrainClass%22%3A%22%22%2C%22filtStation%22%3A%22%22%2C%22needFiltItems%22%3A1%2C%22h5Version%22%3A%221.4.5%22%7D&needLogin=false&ttid=12mtb0000104&appKey=12574478&t=1552626427115&sign=5d6c65ce56c4b07e0631363233b3c59f + - 获取火车票数据 + + 25 https://h5api.m.taobao.com/h5/mtop.trip.train.navigationBarSearch/1.0?type=originaljson&api=mtop.trip.train.navigationBarSearch&v=1.0&data=%7B%22depDate%22%3A%222019-03-14%22%2C%22depLocation%22%3A%22%E6%AD%A6%E6%B1%89%22%2C%22arrLocation%22%3A%22%E5%AD%9D%E6%84%9F%E4%B8%9C%22%2C%22h5Version%22%3A%221.4.5%22%7D&needLogin=false&ttid=12mtb0000104&appKey=12574478&t=1552626537168&sign=c8a9339c638152879ceacc35d6d2cd9d + - 车次搜索 + + * https://h5api.m.taobao.com/h5/mtop.taobao.tejia.fantomas.items/1.0/?jsv=2.4.11&appKey=12574478&t=1537544020708&sign=e406db97b88459ae0935d1aa19574f61&api=mtop.taobao.tejia.fantomas.items&v=1.0&ecode=0&secType=2&timeout=20000&type=json&dataType=jsonp&data=%7B%22blockId%22%3A%22100109%22%2C%22startRow%22%3A10%2C%22page%22%3A2%2C%22flowId%22%3A%2275%22%2C%22bucketId%22%3A%221%22%2C%22pageSize%22%3A10%2C%22appId%22%3A10%2C%22totalItem%22%3A0%2C%22viewId%22%3A%22d3151de2-a814-7715-0001-3b74cae3b128%22%2C%22haveActivityItems%22%3Atrue%2C%22src%22%3A%22shouye_0%22%2C%22requestId%22%3A%22698c37f2-735b-5c1f-8d83-924bc58212e8%22%7D + - 淘金币特价宝贝 + - data参数为:{"blockId":"100109","startRow":10,"page":2,"flowId":"75","bucketId":"1","pageSize":10,"appId":10,"totalItem":0,"viewId":"d3151de2-a814-7715-0001-3b74cae3b128","haveActivityItems":true,"src":"shouye_0","requestId":"698c37f2-735b-5c1f-8d83-924bc58212e8"} + + https://h5api.m.taobao.com/h5/mtop.taobao.tejia.fantomas.items/1.0/?jsv=2.4.0&appKey=12574478&t=1537544315088&sign=4deea7223c8dd36160c80e1232a83cb9&api=mtop.taobao.tejia.fantomas.items&v=1.0&ecode=0&timeout=20000&type=json&dataType=jsonp&data=%7B%22appId%22%3A10%2C%22flowId%22%3A84%2C%22blockId%22%3A100113%2C%22extQuery%22%3A%22%E7%94%B7%E9%9E%8B%22%2C%22startRow%22%3A0%2C%22page%22%3A0%7D + + - 淘金币特价宝贝搜索 + - data参数为:{"appId":10,"flowId":84,"blockId":100113,"extQuery":"男鞋","startRow":0,"page":0} + + https://shop.m.tmall.com/shop/add_fav_shop.do?shop_id=113813205&_tb_token_=3ee5ba0ee4e36&type=1&ajson=1&json=true + + - 收藏店铺 + - _tb_token是cookie里面的参数 + - shop_id是店铺的id + - type参数为1是收藏,为2是取消收藏 + + https://api.m.taobao.com/rest/h5ApiUpdate.do?type=json&api=mtop.ww.getLatestMsg&v=2.0&data=%7B%22talkTo%22%3A%22%E5%93%81%E4%BD%8D%E7%BE%8A%E6%97%97%E8%88%B0%E5%BA%97%3A1%E5%8F%B7%22%2C%22domain%22%3A%22cntaobao%22%2C%22shopId%22%3A%22113813205%22%7D&appKey=12574478&sign=ec66de2da1b1f5da2bb53f25ac4eb346&t=1537545110622 + + - 获取最近同卖家聊天的消息 + - data参数为:{"talkTo":"品位羊旗舰店:1号","domain":"cntaobao","shopId":"113813205"} + - talkTo是店铺名,domain可能是某个域名下,shopId是店铺ID + + https://h5api.m.taobao.com/h5/mtop.taobao.mercury.platform.collections.get/3.0/?jsv=2.4.11&appKey=12574478&t=1537545398170&sign=043f1b00295ffbd63cb6e6f35cf08b37&api=mtop.taobao.mercury.platform.collections.get&v=3.0&ecode=1&type=json&dataType=jsonp&data=%7B%22itemType%22%3A1%2C%22platformCode%22%3A0%2C%22startRow%22%3A0%2C%22startTime%22%3A0%2C%22pageSize%22%3A30%2C%22isFilterInvalid%22%3Afalse%2C%22isLowPrice%22%3Afalse%2C%22frontCategoryId%22%3A0%2C%22lv1CategoryId%22%3A0%2C%22isFilterBigSale%22%3Afalse%2C%22isFilterNewArrival%22%3Afalse%2C%22isFilterPromotion%22%3Afalse%2C%22keyword%22%3A%22%22%2C%22appName%22%3A%22favorite%22%2C%22isFilterLessStore%22%3Afalse%2C%22hasMore%22%3A%22true%22%7D + - 获取我的宝贝收藏 此API可能需要cookie + - data参数为:{"itemType":1,"platformCode":0,"startRow":0,"startTime":0,"pageSize":30,"isFilterInvalid":false,"isLowPrice":false,"frontCategoryId":0,"lv1CategoryId":0,"isFilterBigSale":false,"isFilterNewArrival":false,"isFilterPromotion":false,"keyword":"","appName":"favorite","isFilterLessStore":false,"hasMore":"true"} + + https://h5api.m.taobao.com/h5/mtop.taobao.mercury.delcollects/1.0/?jsv=2.4.11&appKey=12574478&t=1537545670071&sign=d9c6ef2b15cc491209bf0d03a724f23b&api=mtop.taobao.mercury.delCollects&v=1.0&ecode=1&LoginRequest=true&type=json&dataType=jsonp&data=%7B"itemIds"%3A"%5B%5C"535589799169%5C"%5D"%2C"appName"%3A"favorite"%2C"bizCode"%3A"favorite"%2C"favType"%3A1%7D + - 删除我的宝贝收藏 此API可能需要cookie + - data参数为:{"itemIds":"[\"535589799169\"]","appName":"favorite","bizCode":"favorite","favType":1} + + https://acs.m.taobao.com/h5/mtop.taobao.mercury.clear/1.0/?appKey=12574478&t=1537545863377&sign=0493201ce053952fc08dff66bd898073&api=mtop.taobao.mercury.clear&v=1.0&ecode=1&type=json&dataType=jsonp&data=%7B%22itemType%22%3A1%2C%22clearType%22%3A0%2C%22appName%22%3A%22mclaren%22%7D + - 全部清理我的失效宝贝收藏 + - data参数为:{"itemType":1,"clearType":0,"appName":"mclaren"} + + https://wwc.alicdn.com/avatar/getAvatar.do?userId=2464963663&_input_charset=UTF-8&width=160&height=160&type=sns + - 获取用户的头像 + - userId就是用户的id + + https://h5api.m.taobao.com/h5/mtop.taobao.shop.impression.intro.get/1.0/?jsv=2.4.2&appKey=12574478&t=1553053237446&sign=61aa51a7000d8a0e3c8b34f2eacbf7bf&api=mtop.taobao.shop.impression.intro.get&v=1.0&type=originaljson&secType=1&timeout=3000&AntiCreep=true&dataType=json&data=%7B%22sellerId%22%3A17112733%2C%22shopId%22%3A61044576%7D + - 获取店铺的基础信息,包含店铺名、服务电话、所在地、资质、开店时间 + - data的参数是{"sellerId":17112733,"shopId":61044576},传单个参数是否返回数据,未确定 + + https://h5api.m.taobao.com/h5/mtop.taobao.shop.cat.neo.get/1.0/?jsv=2.4.5&appKey=12574478&t=1553053684884&sign=c5f6fe1959956db97d302bee57e5e496&api=mtop.taobao.shop.cat.neo.get&v=1.0&H5Request=true&preventFallback=true&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22shopId%22%3A%2261044576%22%2C%22sellerId%22%3A%2217112733%22%2C%22supportWeex%22%3Atrue%7D + - 获取店铺商品分类 + - data参数为:"{"shopId":"61044576","sellerId":"17112733","supportWeex":true}" + + https://h5api.m.taobao.com/h5/mtop.taobao.shop.impression.dsr.get/1.0/?jsv=2.4.2&appKey=12574478&t=1553053864375&sign=b9490aebcfe9f71df756b49508fbedb4&api=mtop.taobao.shop.impression.dsr.get&v=1.0&type=originaljson&secType=1&timeout=3000&AntiCreep=true&dataType=json&data=%7B%22sellerId%22%3A17112733%2C%22shopId%22%3A61044576%7D + - 获取店铺的好评率 + - data参数为:{"sellerId":17112733,"shopId":61044576} + + https://h5api.m.taobao.com/h5/mtop.taobao.shop.impression.logo.get/1.0/?jsv=2.4.2&appKey=12574478&t=1555553002443&sign=b92d6b34a79cf9e2d56df078322ead34&api=mtop.taobao.shop.impression.logo.get&v=1.0&type=originaljson&secType=1&timeout=3000&AntiCreep=true&dataType=json&data=%7B%22sellerId%22%3A73389067%2C%22shopId%22%3A34941651%7D + - 获取店铺的logo + - data参数为:{"sellerId":73389067,"shopId":34941651} + - 来源地址为:https://market.m.taobao.com/app/tb-source-app/wz111/pages/impression?pathInfo=shop/impression&userId=73389067&shopId=34941651&wh_weex=true&pageId=0&alisite=true + + https://api.m.taobao.com/h5/mtop.shop.querybuyerbonus/1.0/?v=1.0&api=mtop.shop.querybuyerbonus&appKey=12574478&t=1553054452161&callback=mtopjsonp1&type=jsonp&sign=c37897956afb6dbe957a94bbc21b8643&data=%7B%22sellerId%22%3A%222271020968%22%2C%22spm%22%3A%22a220l.11009277.coupon.i11009277%22%7D + - 获取店铺的优惠券 + - data参数为:{"sellerId":"2271020968","spm":"a220l.11009277.coupon.i11009277"} + + https://h5api.m.taobao.com/h5/mtop.taobao.uec.tac.execute/1.0/?jsv=2.4.5&appKey=12574478&t=1553060931838&sign=d21087c65ce8dd32dd97866d177a2659&api=mtop.taobao.uec.tac.execute&v=1.0&type=jsonp&dataType=jsonp&timeout=5000&preventFallback=true&callback=mtopjsonp4&data=%7B%22msCodes%22%3A%222018110500%22%2C%22bizVersion%22%3A0%2C%22env%22%3A1%2C%22paramMap%22%3A%22%7B%5C%22bizCode%5C%22%3A%5C%22001%5C%22%2C%5C%22type%5C%22%3A%5C%2201%5C%22%2C%5C%22userId%5C%22%3A%5C%221090955643%5C%22%7D%22%7D + - 获取淘宝用户信息,例如勋章 + - data参数为:{"msCodes":"2018110500","bizVersion":0,"env":1,"paramMap":"{\"bizCode\":\"001\",\"type\":\"01\",\"userId\":\"1090955643\"}"} + + https://h5api.m.taobao.com/h5/mtop.fortress.csp.aggregate/1.0/?jsv=2.4.5&appKey=12574478&t=1553060931729&sign=36a96e546af3fbfd29ca5bb7f9edfb12&api=mtop.fortress.csp.aggregate&v=1.0&type=jsonp&dataType=jsonp&timeout=5000&preventFallback=true&callback=mtopjsonp2&data=%7B%22bizVersion%22%3A0%2C%22cspId%22%3A779002%2C%22env%22%3A1%2C%22params%22%3A%22%7B%5C%22pageSize%5C%22%3A20%2C%5C%22targetId%5C%22%3A%5C%221090955643%5C%22%2C%5C%22contentId%5C%22%3A%5C%22%5C%22%7D%22%7D + - 获取淘宝用户信息,例如喜欢的人数 + - data参数为:{"bizVersion":0,"cspId":779002,"env":1,"params":"{\"pageSize\":20,\"targetId\":\"1090955643\",\"contentId\":\"\"}"} + + https://h5api.m.taobao.com/h5/mtop.taobao.uec.tac.execute/1.0/?jsv=2.4.5&appKey=12574478&t=1553060931839&sign=53e36f139fce539028d55b02161852bf&api=mtop.taobao.uec.tac.execute&v=1.0&type=jsonp&dataType=jsonp&timeout=5000&preventFallback=true&callback=mtopjsonp5&data=%7B%22msCodes%22%3A%222018102901%22%2C%22bizVersion%22%3A0%2C%22env%22%3A1%2C%22paramMap%22%3A%22%7B%5C%22code%5C%22%3A%5C%22label-all-count%5C%22%2C%5C%22bizCode%5C%22%3A%5C%221%5C%22%2C%5C%22type%5C%22%3A%5C%220%5C%22%2C%5C%22userIds%5C%22%3A%5C%221090955643%5C%22%7D%22%7D + - 这个可能就是获取标签的api + - data参数为:{"msCodes":"2018102901","bizVersion":0,"env":1,"paramMap":"{\"code\":\"label-all-count\",\"bizCode\":\"1\",\"type\":\"0\",\"userIds\":\"1090955643\"}"} + + https://h5api.m.taobao.com/h5/mtop.taobao.uec.tac.execute/1.0/?jsv=2.4.5&appKey=12574478&t=1553060931839&sign=8b5231fe0256fa7299090f60df46b25d&api=mtop.taobao.uec.tac.execute&v=1.0&type=jsonp&dataType=jsonp&timeout=5000&preventFallback=true&callback=mtopjsonp6&data=%7B%22msCodes%22%3A%222018102901%22%2C%22bizVersion%22%3A0%2C%22env%22%3A1%2C%22ecode%22%3A1%2C%22paramMap%22%3A%22%7B%5C%22code%5C%22%3A%5C%22label-suggest%5C%22%2C%5C%22target-userId%5C%22%3A%5C%221090955643%5C%22%7D%22%7D + - 这个才是获取用户标签的API,这个API可以不用登录就可以获取 + - data参数为:{"msCodes":"2018102901","bizVersion":0,"env":1,"ecode":1,"paramMap":"{\"code\":\"label-suggest\",\"target-userId\":\"1090955643\"}"} + - 来源地址为:https://market.m.taobao.com/app/mtb/app-onion-note-weex/pages/user?wh_weex=true&wx_navbar_transparent=true&userId=OH7zX8QSvHQSOmlevFQYPC8LvCM-PG7-MkcLv0kLMGcT + + https://h5api.m.taobao.com/h5/mtop.fortress.csp.aggregate/1.0/?jsv=2.4.5&appKey=12574478&t=1553061583935&sign=d9b7cef966f071e430cecad9917fdc8a&ttid=%23%23h5&api=mtop.fortress.csp.aggregate&v=1.0&ecode=1&sessionOption=AutoLoginOnly&type=jsonp&timeout=5000&dataType=jsonp&preventFallback=true&callback=mtopjsonp2&data=%7B%22cspId%22%3A629006%2C%22env%22%3A1%2C%22bizVersion%22%3A0%2C%22params%22%3A%22%7B%5C%22a%5C%22%3A1%7D%22%7D + - 获取用户的评价数量 + - data参数为:{"cspId":629006,"env":1,"bizVersion":0,"params":"{\"a\":1}"} + + https://h5api.m.taobao.com/h5/mtop.taobao.mclaren.getuserprofile/1.0/?jsv=2.4.2&appKey=12574478&t=1553233775079&sign=6341005b1f61a9a2a6844adefbd352c4&api=mtop.taobao.mclaren.getUserProfile&v=1.0&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb1&data=%7B%7D + - 获取用户的简要信息,昵称 + - data参数为:{} + + https://h5api.m.tmall.com/h5/mtop.lotus.mtoppointdetailservice.querypackageofpoint/1.0/?jsv=2.4.8&appKey=12574478&t=1553404409470&sign=766e450a88b648ee43078fea35cf7ed9&api=mtop.lotus.MtopPointDetailService.queryPackageOfPoint&v=1.0&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%7D + - 获取天猫积分信息 + - data参数为:{} + - 来源地址为:https://pages.tmall.com/wow/jifen/act/index?spm=a21ln.8407857.0.0 + + https://h5api.m.taobao.com/h5/mtop.order.querydetail/4.0/?jsv=2.5.0&appKey=12574478&t=1553404557857&sign=dcd0529b5f497db95f7d47f5821bdfb7&api=mtop.order.querydetail&v=4.0&ttid=2018%40taobao_h5_7.9.1&isSec=0&ecode=0&AntiFlood=true&AntiCreep=true&H5Request=true&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%22appVersion%22%3A%221.0%22%2C%22appName%22%3A%22tborder%22%2C%22bizOrderId%22%3A%22330307168589954356%22%7D + - 订单查询接口 + - data参数为:{"appVersion":"1.0","appName":"tborder","bizOrderId":"330307168589954356"} + - 来源地址为:https://h5.m.taobao.com/mlapp/odetail.html?spm=a223i.7776189.detailList.d229620545669&bizOrderId=330307168589954356 + + https://h5api.m.taobao.com/h5/mtop.taobao.idle.user.my.order/2.0/?jsv=2.4.9&appKey=12574478&t=1553406874412&sign=5eca0fe760e7fddbc6325cf98d9f0844&api=mtop.taobao.idle.user.my.order&v=2.0&AniCreep=true&AntiFlool=true&dataType=json&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_0.12.14&type=originaljson&data=%7B%22from%22%3A3%7D + - 获取用户近一年购买的商品 + - data参数为:{"from":3} + - 来源地址为:https://market.m.taobao.com/app/idleFish-F2e/widle-taobao-vue/IdleChangeTb?wh_weex=true&scm=20140623.1.3.287 + + https://h5api.m.taobao.com/h5/mtop.taobao.wsearch.appsearch/1.0/?jsv=2.4.5&appKey=12574478&t=1553594224830&sign=42f35d295fa86236a41e9496a67866ad&api=mtop.taobao.wsearch.appSearch&v=1.0&H5Request=true&preventFallback=true&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22m%22%3A%22shopitemsearch%22%2C%22vm%22%3A%22nw%22%2C%22sversion%22%3A%224.6%22%2C%22shopId%22%3A%2261401536%22%2C%22sellerId%22%3A%22397295839%22%2C%22style%22%3A%22wf%22%2C%22page%22%3A%221%22%2C%22sort%22%3A%22_coefp%22%2C%22catmap%22%3A%22%22%2C%22wirelessShopCategoryList%22%3A%22%22%7D + - 获取店铺旗下商品,包含tag属性,可以在data中的q参数传递宝贝的标题,直接查询到宝贝 + - data参数为:{"m":"shopitemsearch","vm":"nw","sversion":"4.6","shopId":"61401536","sellerId":"397295839","style":"wf","page":"1","sort":"_sale","q":"","catmap":"","wirelessShopCategoryList":""} + - 来源地址为:https://market.m.taobao.com/app/tb-source-app/shop-auction/pages/auction?wh_weex=true&sellerId=397295839&shopId=61401536&disablePromotionTips=true + + https://h5api.m.taobao.com/h5/mtop.txd.store.query/1.0/?jsv=2.4.11&appKey=12574478&t=1553649855071&sign=2ad1172342a47b2b37644a889bd73422&v=1.0&dataType=jsonp&timeout=10000&api=mtop.txd.store.query&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_1.0.27&type=jsonp&callback=mtopjsonpweexcb2&data=%7B%22authorize%22%3A2%7D + - 获取淘鲜达的门店地址 + - data参数为:{"authorize":2} + - 来源地址为:https://s.m.taobao.com/h5?event_submit_do_new_search_auction=1&_input_charset=utf-8&topSearch=1&atype=b&searchfrom=1&action=home%3Aredirect_app_action&from=1&sst=1&n=20&buying=buyitnow&q=%E6%B7%98%E9%B2%9C%E8%BE%BE + + https://h5api.m.taobao.com/h5/com.taobao.mtop.deliver.getaddresslist/2.0/?jsv=2.4.8&appKey=12574478&t=1553679610569&sign=0549ba205321770703d7e6939caae78a&api=com.taobao.mtop.deliver.getAddressList&v=2.0&ecode=1&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22addrOption%22%3A%220%22%2C%22sortType%22%3A%220%22%7D + - 获取用户的收货地址 + - data参数为:{"addrOption":"0","sortType":"0"} + - 来源地址为:https://h5.m.taobao.com/mtb/address.html?spm=a1z0b.8163239.0.0 + + https://api.m.taobao.com/h5/mtop.order.getorderrateinfo/1.0/?v=1.0&api=mtop.order.getOrderRateInfo&appKey=12574478&t=1553679875950&callback=mtopjsonp1&type=jsonp&sign=756a1152164c8336f1e7a9308c93e13f&data=%7B%7D + - 获取订单的评价信息,但是此API没有获取到详细信息,只有一个跳转的地址 + - data参数为:{"orderId":"383632288532954356"} + - 来源地址为:https://h5.m.taobao.com/awp/mtb/myrate.htm#!/awp/mtb/rate.htm + + 获取淘宝账户体检的状态 + - 来源地址为:https://passport.taobao.com/ac/h5/appeal_center.htm?fromSite=0 + + https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=jsonp2&type=jsonp&api=mtop.ww.getGroupList&v=1.0&data=%7B%7D&appKey=12574478&sign=74ab6cb83e8bd08f5672c6cf07955e57&t=1553682172384 + - 获取用户的旺旺分组 + - data参数为:{} + - 来源地址为:https://h5.m.taobao.com/ww/index.htm#!myFriend + + https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=jsonp4&type=jsonp&api=mtop.ww.getFriendList&v=1.0&data=%7B%22groupId%22%3A%220%22%2C%22onlyOnline%22%3Afalse%7D&appKey=12574478&sign=4e07f13facf94920f1e219956940117e&t=1553682257141 + - 获取用户旺旺分组下的用户 + - data参数为:{"groupId":"0","onlyOnline":false} + - 来源地址为:https://h5.m.taobao.com/ww/index.htm#!myFriend + + https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=jsonp5&type=jsonp&api=mtop.ww.getTalkDialogInfo&v=1.0&data=%7B%22talkTo%22%3A%22%E5%8F%AF%E7%B1%B3%E7%BD%91%E7%BB%9C%3A%E5%B0%8F%E4%B9%94%22%2C%22domain%22%3A%22cntaobao%22%7D&appKey=12574478&sign=a9513c6e42e29c9bca681a2f08049e93&t=1553682753960 + - 与用户创建旺旺链接 + - data参数为:{"talkTo":"可米网络:小乔","domain":"cntaobao"} + - 来源地址为:https://h5.m.taobao.com/ww/index.htm#!dialog-Y250YW9iYW/lj6/nsbPnvZHnu5w65bCP5LmU-----cntaobao + + https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=jsonp10&type=jsonp&api=mtop.ww.getLatestMsg&v=2.0&data=%7B%22talkTo%22%3A%22%E5%8F%AF%E7%B1%B3%E7%BD%91%E7%BB%9C%3A%E5%B0%8F%E4%B9%94%22%2C%22domain%22%3A%22cntaobao%22%7D&appKey=12574478&sign=1dd48065210c397a8d2b028c700c0f33&t=1553682784206 + - 获取与用户的最近旺旺聊天信息 + - data参数为:{"talkTo":"可米网络:小乔","domain":"cntaobao"} + - 来源地址为:https://h5.m.taobao.com/ww/index.htm#!dialog-Y250YW9iYW/lj6/nsbPnvZHnu5w65bCP5LmU-----cntaobao + + https://api.m.taobao.com/rest/h5ApiUpdate.do?callback=jsonp17&type=jsonp&api=mtop.ww.sendMessage&v=1.0&data=%7B%22talkTo%22%3A%22%E5%8F%AF%E7%B1%B3%E7%BD%91%E7%BB%9C%3A%E5%B0%8F%E4%B9%94%22%2C%22domain%22%3A%22cntaobao%22%2C%22content%22%3A%22test%22%2C%22firstMsg%22%3Atrue%7D&appKey=12574478&sign=ba0f44e54ebde43e35646683031f252e&t=1553682976882 + - 发送旺旺消息到用户 + - data参数为:{"talkTo":"可米网络:小乔","domain":"cntaobao","content":"test","firstMsg":true} + - 来源地址为:https://h5.m.taobao.com/ww/index.htm#!dialog-Y250YW9iYW/lj6/nsbPnvZHnu5w65bCP5LmU-----cntaobao + + https://airunit.taobao.com/order/parentList?from=alxm&pageNo=3&pageSize=10&title=&tableCode= + - 通过阿里小蜜获取到订单 + - 此API必须设置referer + - referer为:https://h5.m.taobao.com/alicare/index.html?from=alxm&scm=20140623.1.2.6&spm=a2141.7756461.mytaobao_v4_round_tools_1.i0 + + https://api.m.taobao.com/h5/mtop.wdetail.getitemsku/1.0/?v=1.0&api=mtop.wdetail.getItemSku&ttid=2013%40taobao_h5_1.0.0&appKey=12574478&t=1553752273555&callback=mtopjsonp1&type=jsonp&sign=40433d2874944599614d4a1af62f3e16&data=%7B%22itemId%22%3A%22567646156138%22%2C%22skuId%22%3A%22464348294%22%2C%22cartId%22%3A%224354654%22%2C%22areaId%22%3A%221000%22%7D + - 获取购物车中的某个宝贝的SKU信息,此API在一次web请求中获取到了数据,但是在第二次请求中提示API不存在 + - data参数为:{"itemId":"567646156138","skuId":"464348294","cartId":"4354654","areaId":"1000"} + - 来源地址为:https://h5.m.taobao.com/awp/mtb/myrate.htm#!/awp/base/sku.htm + + https://api.m.taobao.com/h5/mtop.trade.updatecartsku/1.0/?v=1.0&api=mtop.trade.updateCartSku&ttid=2013%40taobao_h5_1.0.0&appKey=12574478&t=1553752668684&callback=mtopjsonp1&type=jsonp&sign=09c3f29be48e035ee4dfdfcca25ab80f&data=%7B%22cartId%22%3A%221231654654%22%2C%22itemId%22%3A%22567646156138%22%2C%22skuId%22%3A%22464348294%22%7D + - 订单更新宝贝信息 + - data参数为:{"cartId":"1231654654","itemId":"567646156138","skuId":"464348294"} + - 来源地址为:https://h5.m.taobao.com/awp/mtb/myrate.htm#!/awp/base/sku.htm + + https://api.m.taobao.com/h5/mtop.trade.querybaglist.ex/2.0/?v=2.0&api=mtop.trade.queryBagList.ex&appKey=12574478&t=1553753442734&callback=mtopjsonp1&type=jsonp&sign=da28395a9e13f0c7f6ba184e546a7d60&data=%7B%22filterCItem%22%3A%22false%22%2C%22pageNo%22%3A1%2C%22startTimestamp%22%3A0%2C%22endTimestamp%22%3A0%2C%22next%22%3Atrue%2C%22type%22%3Atrue%2C%22cat%22%3A%22all%22%2C%22supportAsync%22%3Atrue%2C%22mixed%22%3Afalse%7D + - 获取购物车数据,cat参数为promo是降价商品,为short是库存紧张,all是全部商品 + - data参数为:{"filterCItem":"false","pageNo":1,"startTimestamp":0,"endTimestamp":0,"next":true,"type":true,"cat":"all","supportAsync":true,"mixed":false} + - 来源地址为:https://h5.m.taobao.com/awp/mtb/myrate.htm#!/awp/base/cart.htm + + https://api.m.taobao.com/h5/mtop.trade.querybag/4.1/?v=4.1&api=mtop.trade.queryBag&appKey=12574478&t=1553753942755&callback=mtopjsonp5&type=jsonp&sign=1610d29047ffb0e4d88e73622ccf49bb&data=%7B%22isPage%22%3A%22false%22%2C%22extStatus%22%3A%220%22%7D + - 获取购物车数据2,这个商品数据太过零散 + - data参数为:{"isPage":"false","extStatus":"0"} + - 来源地址为:https://h5.m.taobao.com/awp/mtb/myrate.htm#!/awp/base/bag.htm + + https://h5api.m.taobao.com/h5/mtop.taobao.taojinbi.core.user.metadatav2/1.0/?jsv=2.4.0&appKey=12574478&t=1553755622549&sign=2a9bbb0e70e6b2be18c09c25f90eb127&api=mtop.taobao.taojinbi.core.user.metadatav2&v=1.0&ecode=0&timeout=20000&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%7D + - 获取淘金币、淘气值、用户昵称信息 + - data参数为:{} + - 来源地址为:https://market.m.taobao.com/apps/market/tjb/my.html?wh_weex=true + + https://h5api.m.taobao.com/h5/mtop.taobao.hlservice.columntab.list/2.0/?jsv=2.4.2&appKey=12574478&t=1553756332709&sign=ab04cf798926d12c2255a1640716bb9a&api=mtop.taobao.hlservice.columntab.list&v=2.0&AntiCreep=true&timeout=5000&type=jsonp&dataType=jsonp&callback=mtopjsonp3&data=%7B%22app%22%3A%22tbc%22%2C%22version%22%3A%2217.0%22%2C%22userType%22%3A1%2C%22cityCode%22%3A%22%22%2C%22positionX%22%3A%22%22%2C%22positionY%22%3A%22%22%7D + - 淘宝头条,获取分类信息 + - data参数为:{"app":"tbc","version":"17.0","userType":1,"cityCode":"","positionX":"","positionY":""} + - 来源地址为:https://market.m.taobao.com/apps/market/toutiao/portal.html?wh_weex=true&data_perfetch=true + + https://h5api.m.taobao.com/h5/mtop.tmall.detail.couponpage/1.0/?jsv=2.4.3&appKey=12574478&t=1553852996776&sign=941e2d45d4a751f16d96eb6d6956aeac&api=mtop.tmall.detail.couponpage&dataType=jsonp&v=1.0&type=jsonp&ttid=2017%40taobao_h5_6.6.0&callback=mtopjsonp2&data=%7B%22itemId%22%3A%2214559934352%22%2C%22sellerId%22%3A%22752953441%22%2C%22source%22%3A%22tmallH5%22%7D + - 天猫店铺优惠券 + - data参数为:{"itemId":"14559934352","sellerId":"752953441","source":"tmallH5"} + - 来源地址为:https://ju.taobao.com/m/jusp/alone/detailwap/mtp.htm?item_id=14559934352&_force=wap&_target=_blank&spm=a3402.8264724.good-wrap.dgood.lbKBOo&item_id=14559934352&cad=c&_target=_blank&from=qrcode&_format=true + + https://h5api.m.taobao.com/h5/mtop.tmall.detail.applycoupon/1.0/?jsv=2.4.3&appKey=12574478&t=1553853037479&sign=2cbf203f487948c83b4880c497719578&api=mtop.tmall.detail.applycoupon&dataType=jsonp&v=1.0&type=jsonp&ttid=2017%40taobao_h5_6.6.0&callback=mtopjsonp10&data=%7B%22couponType%22%3A%221%22%2C%22uuid%22%3A%22286e37738f1a48f28ffc057656a262a7%22%2C%22sellerId%22%3A%22752953441%22%2C%22lotteryId%22%3A%22%22%2C%22source%22%3A%22tmallH5%22%2C%22asac%22%3A%22%22%2C%22ua%22%3A%22115%231VNbuC1O1TZuX3ovtCGe1CsoE51MI9A11g2u1N2ZKC11q8V1OO25Gob8sM1giGgKhS5w91r9ZLpXszEQ9eaNeeuPzJeviPQhHUU4AWNcaLBfOZPQOSAPeKL8Owma90vJhUU89BCDaLBAuyjtRj5yetsYyWNQisJJhUU4OWGcaLpXyrrQORRPeK%2F4mHIdiQJRdpTKizRmaDc6sAQ3d7QNr6Sln1wXdrK7ocJf1Bx0B7c8VL0DyaSev0jZdSdSPON%2BT3Icgje3KIWfyqGgSDzxkhp1fFvMFVUPCMHHfx9gt3nM6SJuEXcemL9JCDzka8eeQdO5rCibjvE5kWU3snZBaaW0LaIDtGp5p4bIJk3LaWy06yFtFCGVi9B2LcVGqwntEDY9gCX49Qostt8BGFUbzIbX1Dc%2FSIW7RJn0u5OVKmGeh6gL0XNVDoN1gcST31NpYzdqRmVfAHwaS4tWNFK4JzctOoCCzxeGWbtM%2FmHorHO1ocs4Z4urBwXjecpSkp%2BKTpNDlgIl7rdyiDVsgt5tSlUr%2FioqXihFPuypengZN3x%2BKipau%2BR23X9J%2B2BBXyTwOHOj4UcunLkH8sD4d54JW6gmgLnMsKcK2fvE%2BZuooD%2BQclsS%2B%2BXxyPy7UxMDtPbiWLO6p78j7AJv0DrYFl1SaHMx5ZU8C56uzJk0xCOWFcwJHmy0dUakysg7CEx%2BO0ju7uq%2F6XAZUe4ZyVEU44UidOZamCwd8G%2FQdj%2FY5dnmoWeYwkvPCLGFpJtvtRmS2O5ksCKnjWglYrNa4XjGTDCsXxbp54CBcJP%2F17NtoFwwYLs%2F7oQi%2BDj96CddsGM2ZVaGkoLHkeGakXRudip0GxeJdikOZuuk%2BFdl7K286jrrktFL7ucYYV0ovZ3KqPZP2yu%2FEhhvs8gxCyLT0jCyqQimLA%2FYZLZJNuyjpeR7xw2DJjZydjyop%2BGmECqwMbvHMvV%3D%22%7D + - 领取店铺优惠券,uuid参数为优惠券的唯一ID,可以从店铺优惠券API获取到,data参数中的ua参数去掉了,可以尝试下是否可领 + - data参数为:{"couponType":"1","uuid":"286e37738f1a48f28ffc057656a262a7","sellerId":"752953441","lotteryId":"","source":"tmallH5","asac":""} + - 来源地址为:https://ju.taobao.com/m/jusp/alone/detailwap/mtp.htm?item_id=14559934352&_force=wap&_target=_blank&spm=a3402.8264724.good-wrap.dgood.lbKBOo&item_id=14559934352&cad=c&_target=_blank&from=qrcode&_format=true + + https://h5api.m.tmall.com/h5/mtop.ju.tqg.querycategory/1.0/?jsv=2.4.8&appKey=12574478&t=1554037958865&sign=9ea6d22f930deb305370c91f028ccfd4&api=mtop.ju.tqg.querycategory&v=1.0&dataType=originaljsonp&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_0.12.14&type=originaljsonp&callback=mtopjsonpweexcb2&data=%7B%7D + - 获取淘抢购的类目 + - data参数为:{} + - 来源地址为:https://pages.tmall.com/wow/ju/act/tqg-category?wh_weex=true&id=308000&spm=a21ab.7662557.inner_category.item30_1&_from=h5&utpagename + + https://h5api.m.tmall.com/h5/mtop.ju.tqg.queryitembycategoryid/1.0/?jsv=2.4.8&appKey=12574478&t=1554037959140&sign=ee800dc2dc9817dab71866a0c10c6461&api=mtop.ju.tqg.queryitembycategoryid&v=1.0&dataType=originaljsonp&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_0.12.14&type=originaljsonp&callback=mtopjsonpweexcb5&data=%7B%22categoryId%22%3A%22308000%22%2C%22currentPage%22%3A1%2C%22pageSize%22%3A20%2C%22childCategoryId%22%3A0%7D + - 获取淘抢购类目下的数据 + - data参数为:{"categoryId":"308000","currentPage":1,"pageSize":20,"childCategoryId":0} + - 来源地址为:https://pages.tmall.com/wow/ju/act/tqg-category?wh_weex=true&id=308000&spm=a21ab.7662557.inner_category.item30_1&_from=h5&utpagename + + https://h5api.m.taobao.com/h5/mtop.taobao.wsearch.appsearch/1.0/?jsv=2.4.11&appKey=12574478&t=1554707135744&sign=dea8b29758bc36257ea29aeb384dd8c5&api=mtop.taobao.wsearch.appsearch&v=1.0&dataType=jsonp&type=jsonp&callback=mtopjsonp1&data=%7B%22from%22%3A%22tbsearch%22%2C%22nid%22%3A%22564892185165%22%2C%22q%22%3A%22%E7%94%B7%E5%A4%96%E5%A5%97%22%2C%22vm%22%3A%22nw%22%2C%22showtype%22%3A%22similar%22%2C%22n%22%3A%2240%22%7D + - 搜索相似宝贝 + - data参数为:{"from":"tbsearch","nid":"564892185165","q":"男外套","vm":"nw","showtype":"similar","n":"40"} + - 来源地址为:https://h5.m.taobao.com/app/searchsimilar/www/tbsimilar/index.html?from=tbsearch&nid=564892185165&q=%E7%94%B7%E5%A4%96%E5%A5%97 + + https://h5api.m.taobao.com/h5/mtop.wdetail.getitemdescx/4.1/?jsv=2.4.11&appKey=12574478&t=1535873991698&sign=c0d44739978efa2b0c7b586a20fa6be1&api=mtop.wdetail.getItemDescx&v=4.1&type=json&dataType=jsonp&data=%7B%22item_num_id%22%3A%22523041572454%22%7D + - 获取宝贝介绍 + - data参数为:{"item_num_id":"523041572454"} + + https://h5api.m.taobao.com/h5/mtop.alimama.union.xt.en.api.entry/2.0/?jsv=2.4.0&appKey=12574478&t=1555049975572&sign=d3bb4cc7417ae36091d42529567c3d16&api=mtop.alimama.union.xt.en.api.entry&v=2.0&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22pSize%22%3A10%2C%22floorId%22%3A%22%22%2C%22qieId%22%3A%22198%22%2C%22pNum%22%3A0%2C%22refpid%22%3A%22mm_33231688_7050284_23466709%22%2C%22variableMap%22%3A%22%7B%5C%22navigator%5C%22%3Afalse%2C%5C%22highlight%5C%22%3Afalse%2C%5C%22q%5C%22%3A%5C%22%E6%B3%B3%E8%A1%A3%20%E8%BF%90%E5%8A%A8%5C%22%2C%5C%22provcity%5C%22%3A%5C%22%5C%22%2C%5C%22service%5C%22%3A%5C%22%5C%22%2C%5C%22price%5C%22%3A%5C%22%5C%22%2C%5C%22sort%5C%22%3A%5C%22%5C%22%2C%5C%22pidvid%5C%22%3A%5C%22%5C%22%2C%5C%22usertype%5C%22%3A%5C%22%5C%22%2C%5C%22unid%5C%22%3A%5C%22%5C%22%2C%5C%22algo_is_personalized%5C%22%3A%5C%22true%5C%22%7D%22%2C%22spm%22%3A%22a311n.7676424%2Fn.15891657%22%2C%22app_pvid%22%3A%22201_11.11.125.144_1211238_1555049974758%22%2C%22ctm%22%3A%22spm-url%3A%3Bpage_url%3Ahttps%253A%252F%252Fai.m.taobao.com%252Fsearch.html%253Fq%253D%2525E6%2525B3%2525B3%2525E8%2525A1%2525A3%252520%2525E8%2525BF%252590%2525E5%25258A%2525A8%22%7D + - 通过关键字来搜索宝贝,宝贝的数据里面带有优惠券信息 这个是通过爱淘宝搜索的 + - data参数为:{"pSize":10,"floorId":"","qieId":"198","pNum":0,"refpid":"mm_33231688_7050284_23466709","variableMap":"{\"navigator\":false,\"highlight\":false,\"q\":\"泳衣 运动\",\"provcity\":\"\",\"service\":\"\",\"price\":\"\",\"sort\":\"\",\"pidvid\":\"\",\"usertype\":\"\",\"unid\":\"\",\"algo_is_personalized\":\"true\"}","spm":"a311n.7676424/n.15891657","app_pvid":"201_11.11.125.144_1211238_1555049974758","ctm":"spm-url:;page_url:https%3A%2F%2Fai.m.taobao.com%2Fsearch.html%3Fq%3D%25E6%25B3%25B3%25E8%25A1%25A3%2520%25E8%25BF%2590%25E5%258A%25A8"} + - 来源地址为:https://ai.m.taobao.com/search.html?q=%E6%B3%B3%E8%A1%A3%20%E8%BF%90%E5%8A%A8 + + https://acs.m.taobao.com/h5/mtop.alimama.union.xt.en.api.entry/1.0/?appKey=12574478&t=1555048736070&sign=6625043f79f3e8dce5ff9ab76d2b8a0e&api=mtop.alimama.union.xt.en.api.entry&v=1.0&AntiCreep=true&type=jsonp&ecode=0&dataType=jsonp&callback=mtopjsonp1&data=%7B%22qieId%22%3A211%2C%22pNum%22%3A0%2C%22pSize%22%3A20%2C%22variableMap%22%3A%22%7B%5C%22q%5C%22%3A%5C%22%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E6%B8%B8%E6%88%8F%E6%9C%AC%5C%22%2C%5C%22sort%5C%22%3A%5C%22default%5C%22%2C%5C%22terminal%5C%22%3A%5C%22mobile%5C%22%2C%5C%22service%5C%22%3A%5C%22dpyhq%5C%22%2C%5C%22highlight%5C%22%3Afalse%2C%5C%22navigator%5C%22%3Afalse%2C%5C%22n_level%5C%22%3A0%7D%22%7D + - 通过关键字搜索宝贝,宝贝的数据里面带有优惠券信息 这个是通过淘宝联盟搜索,显示优惠券的参数就是\"service\":\"dpyhq\",如果不需要显示就去掉这个参数 + - data参数为:{"qieId":211,"pNum":0,"pSize":20,"variableMap":"{\"q\":\"笔记本电脑游戏本\",\"sort\":\"default\",\"terminal\":\"mobile\",\"service\":\"dpyhq\",\"highlight\":false,\"navigator\":false,\"n_level\":0}"} + - 来源地址为:https://mos.m.taobao.com/union/extend?q=%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E6%B8%B8%E6%88%8F%E6%9C%AC + + + https://h5api.m.taobao.com/h5/mtop.taobao.idle.user.my.order/2.0/?jsv=2.4.2&appKey=12574478&t=1555045333307&sign=5f9db6230d5e52d0911e7e0c4f68018e&api=mtop.taobao.idle.user.my.order&v=2.0&AniCreep=true&AntiFlool=true&dataType=originaljsonp&jsonpIncPrefix=weexcb&ttid=2019%40weex_h5_0.12.13&type=originaljsonp&callback=mtopjsonpweexcb3&data=%7B%22from%22%3A3%7D + - 获取一年的历史订单信息 + - data参数为:{"from":3} + - 来源地址为:https://www.taobao.com/markets/idletest/taobaodetail-copy_copy?wh_weex=true&spm=a2170..pop.0 + + + https://h5api.m.tmall.com/h5/mtop.benefit.strategy.send/1.0/?jsv=2.4.16&appKey=12574478&t=1555045800707&sign=6ef706ff3003fda0678f64dfd6c7d332&api=mtop.benefit.strategy.send&v=1.0&isSec=1&secType=2&timeout=5000&interval=300&uaSafe=true&jsonpIncPrefix=marketingUtils&type=jsonp&dataType=jsonp&callback=mtopjsonpmarketingUtils11&data=%7B%22asac%22%3A%221A189204TDUXYTGZ1SSXW6%22%2C%22channel%22%3A%22taobaoCouponCenter-bcj%22%2C%22sendParams%22%3A%22%7B%5C%22xbenefitId%5C%22%3A%5C%22ump_2517176024%5C%22%2C%5C%22exclusiveChannel%5C%22%3Anull%2C%5C%22sellerId%5C%22%3A%5C%223252127714%5C%22%2C%5C%22uuid%5C%22%3A%5C%22fd308caefbc2453d9344b0468e8979b0%5C%22%7D%22%2C%22ua%22%3A%22115%231F9sM11O1Tan4TFHtfie1CsoE5skI9A11g2u1T2wKC11q8qN9dDHKBPcyzUE8IcPet84ykaE4%2FkJhUU4AWNDaT9XurPQASfkeKT8ukZQgQyRhEPCOSgaCY9XuzFZASAyeK%2F8ukNQiFMJhUU4OkNDNLBfyrP4vsRyet9DG7UoY%2Fk5M1GJ9JaMSBWWnMA%2FwZssoXi2RX944r6EySSN5MRqzxhrTWrjTmdsjHsidvHUQDZeOeXh0bBAy6NJuSp7YREy65eVwRnxv5v3pFSSIBA2WvsVO0RRjmgqmQVChfmUjjqm%2Bky8O%2BGdYRJUtGM%2F9Eb%2FKgjwWjZYUVAxkrkArck7f%2FbhlZtFQRjE2Yl%2FSQqiQiGB2oh8WQ3aTNyDbsF1iLQNhUPvjXuW5pEeGo%2ByAIjUcdTl2DetcIxdlcjKcLdtpyHjYqzEk314NEb94JyzNHYgv%2BSdiGBY4zW7qqJPhKBTmFed6%2B6XB9dQ3VyNOC8PdTDnfj0x9DwK4vl5v2Pn7FtZbd4P5fnBPOIs8Uf7l8%2BnBLaJeJC5HsoMJSubX3esb6p1l7Ilp1l1nwBpxB8ohJfD%2F40Dplv%2BgoSGG%2BR7LpynYOlU%2BexlUbo9toCTNPA%3D%22%7D + - 领取天猫优惠券 + - data参数为:{"asac":"1A189204TDUXYTGZ1SSXW6","channel":"taobaoCouponCenter-bcj","sendParams":"{\"xbenefitId\":\"ump_2517176024\",\"exclusiveChannel\":null,\"sellerId\":\"3252127714\",\"uuid\":\"fd308caefbc2453d9344b0468e8979b0\"}","ua":"115#1F9sM11O1Tan4TFHtfie1CsoE5skI9A11g2u1T2wKC11q8qN9dDHKBPcyzUE8IcPet84ykaE4/kJhUU4AWNDaT9XurPQASfkeKT8ukZQgQyRhEPCOSgaCY9XuzFZASAyeK/8ukNQiFMJhUU4OkNDNLBfyrP4vsRyet9DG7UoY/k5M1GJ9JaMSBWWnMA/wZssoXi2RX944r6EySSN5MRqzxhrTWrjTmdsjHsidvHUQDZeOeXh0bBAy6NJuSp7YREy65eVwRnxv5v3pFSSIBA2WvsVO0RRjmgqmQVChfmUjjqm+ky8O+GdYRJUtGM/9Eb/KgjwWjZYUVAxkrkArck7f/bhlZtFQRjE2Yl/SQqiQiGB2oh8WQ3aTNyDbsF1iLQNhUPvjXuW5pEeGo+yAIjUcdTl2DetcIxdlcjKcLdtpyHjYqzEk314NEb94JyzNHYgv+SdiGBY4zW7qqJPhKBTmFed6+6XB9dQ3VyNOC8PdTDnfj0x9DwK4vl5v2Pn7FtZbd4P5fnBPOIs8Uf7l8+nBLaJeJC5HsoMJSubX3esb6p1l7Ilp1l1nwBpxB8ohJfD/40Dplv+goSGG+R7LpynYOlU+exlUbo9toCTNPA="} + - 来源地址为:https://pages.tmall.com/wow/lafite/act/lqzctb + + + https://h5api.m.tmall.com/h5/mtop.benefit.strategy.show/1.0/?jsv=2.4.16&appKey=12574478&t=1555045977303&sign=054cb63c629527863f7359e57afb37c3&api=mtop.benefit.strategy.show&v=1.0&isSec=1&secType=2&timeout=5000&interval=300&jsonpIncPrefix=marketingUtils&type=jsonp&dataType=jsonp&callback=mtopjsonpmarketingUtils1&data=%7B%22fillLevel%22%3A3%2C%22pageNumber%22%3A1%2C%22pageSize%22%3A12%2C%22strategyCode%22%3A%229E057FB155CC9718D05A8190D5128C55%22%2C%22channel%22%3A%22taobaoCouponCenter%22%2C%22recallCondition%22%3A%22%7B%5C%22industry_id%5C%22%3A%7B%5C%22expression%5C%22%3A%5C%22contain%5C%22%2C%5C%22value%5C%22%3A%5C%22-1%5C%22%7D%7D%22%2C%22extraData%22%3A%22%7B%7D%22%7D + - 天猫白菜价专区,领取优惠券 + - data参数为:{"fillLevel":3,"pageNumber":1,"pageSize":12,"strategyCode":"9E057FB155CC9718D05A8190D5128C55","channel":"taobaoCouponCenter","recallCondition":"{\"industry_id\":{\"expression\":\"contain\",\"value\":\"-1\"}}","extraData":"{}"} + - 来源地址为:https://pages.tmall.com/wow/lafite/act/tblqzxbcj?spm=a2236.11773601/N.8894597827.1&wh_weex=true&wh_biz=tm&acm=lb-zebra-368878-5610839.1003.4.5076525&scm=1003.4.lb-zebra-368878-5610839.OTHER_15457124449101_5076525 + + https://h5api.m.taobao.com/h5/mtop.mediaplatform.live.depth/1.0/?jsv=2.4.0&appKey=12574478&t=1556271910341&sign=191e529e22199585fa60db51560c5496&api=mtop.mediaplatform.live.depth&v=1.0&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22s%22%3A0%2C%22n%22%3A10%2C%22version%22%3A8%2C%22tagId%22%3A%22column_529%22%2C%22feedId%22%3A%22224540138462%22%7D + - 淘宝直播获取主播分类 + - data参数为:{"s":0,"n":10,"version":8,"tagId":"column_529","feedId":"224540138462"} + - 来源地址为:https://huodong.m.taobao.com/act/videoPop.html + + http://hws.m.taobao.com/d/modulet/v5/WItemMouldDesc.do?id=564620708057&f=TB13a4rVSrqK1RjSZK98qtyypXa + - 获取淘宝的图片及视频还有简介 + - id参数为宝贝ID,f参数是在宝贝详情里面带的一个参数 + - 来源地址为:https://detail.m.tmall.com/item.htm?spm=a320p.7692363.0.0.243a60acDpUwpD&id=564620708057&pic=//img.alicdn.com/bao/uploaded/i2/3017250838/O1CN015LQO3E1I3qQcWlSWf_!!0-item_pic.jpg_Q50s50.jpg_.webp&itemTitle=Musicanvas%20%E9%9F%B3%E4%B9%90%E7%94%BB%E5%B8%83M-MINI%E6%97%A0%E7%BA%BF%E8%93%9D%E7%89%99%E9%9F%B3%E7%AE%B1%E5%B0%8F%E9%9F%B3%E5%93%8D%E6%94%B6%E9%9F%B3%E6%9C%BA%E3%80%90%E9%99%90%E9%87%8F%E6%AC%BE%E3%80%91&price=399.00&from=h5&sku_properties=5919063:6536025 + + +## 聚划算的接口 + + 1 https://skip.ju.taobao.com/json/tg/juSkip.json?menuType=index&banner=true + - 获取聚划算里面的类型,主要是获取类型的catId + + 2 https://athena.ju.taobao.com/api/recommend.htm?app=search_non&count=10&c=u&ft=jsonp + - 猜你喜欢接口获取到的宝贝信息 + + 3 https://ju.taobao.com/json/tg/ajaxGetItemsV2.json?page=2&psize=20&type=0&frontCatId=1000 + - 通过类型catId获取旗下的宝贝 + + + 5 https://detail.ju.taobao.com/detail/json/mobile_dynamic.do?item_id=527181035480&sales_site=1 + - 获取宝贝详情信息,不过只有一些介绍以及一些ID信息,没有价格一类的商品信息,此接口不能获取淘宝或者是天猫的宝贝信息 + - item_id为宝贝ID + + 6 https://detail.ju.taobao.com/detail/item_new_desc.json?item_id=527181035480 + - 获取宝贝的商品详情的图片,此接口也可以获取淘宝或者是天猫的宝贝图片 + + 7 https://api.m.taobao.com/h5/mtop.taobao.detail.getdesc/6.0/?appKey=4272&t=1535685868840&sign=b3fc9670bf056c79dd822d2295260cb4&api=mtop.taobao.detail.getdesc&v=6.0&type=jsonp&dataType=jsonp&timeout=20000&data=%7B%22id%22%3A%22527181035480%22%2C%22type%22%3A%221%22%2C%22f%22%3A%22%22%7D + - 通过API来获取宝贝的规格参数信息 + - appkey参数为4272或者是12574478,两个都可以 + - t参数为时间戳,注意!这个时间戳由js生成的,所以是13位数 + - api参数为api的名称 + - v参数是版本号,固定 + - type参数为返回类型,可以是jsonp或者是json,最好固定为jsonp + - dataType参数固定为jsonp + - timeout参数为该请求的超时时间,暂时固定为2000 + - data参数为提交的数据,一般是字符串{'id':宝贝ID,'type':'1','f':''},或者是将对象转成字符串,最后生成链接的时候需要将字符串urlencode + - sign参数为加密参数,sign=加密(token+&+t+&+appkey+data) ,PS:data参数是字符串,不urlencode + + 8 http://h5api.m.taobao.com/h5/mtop.mediainteraction.video.detail/1.0/?jsv=2.4.5&appKey=12574478&t=1537454283507&sign=147b5d7e276c8974687d69ee283e8ee6&api=mtop.mediainteraction.video.detail&v=1.0&type=jsonp&dataType=jsonp&timeout=20000&callback=mtopjsonp1&data=%7B%22type%22%3A%22guang%22%2C%22id%22%3A%22227239476%22%2C%22topicId%22%3A%2211192%22%2C%22extParams%22%3A%22%7B%5C%22spm-cnt%5C%22%3A%5C%22a310p.11570659%5C%22%2C%5C%22spm-url%5C%22%3A%5C%22a310p.11215610.tuijian.0%5C%22%2C%5C%22page%5C%22%3A%5C%22guang%5C%22%2C%5C%22product_type%5C%22%3A%5C%22videointeract%5C%22%2C%5C%22echoParam%5C%22%3A%7B%7D%7D%22%7D + - 获取视频详情 + - 通过API来获取宝贝的规格参数信息 + - appkey参数为4272或者是12574478,两个都可以 + - t参数为时间戳,注意!这个时间戳由js生成的,所以是13位数 + - api参数为api的名称 + - v参数是版本号,固定 + - type参数为返回类型,可以是jsonp或者是json,最好固定为jsonp + - dataType参数固定为jsonp + - timeout参数为该请求的超时时间,暂时固定为2000 + - data参数为{"type":"guang","id":"227239476","topicId":"11192","extParams":"{\"spm-cnt\":\"a310p.11570659\",\"spm-url\":\"a310p.11215610.tuijian.0\",\"page\":\"guang\",\"product_type\":\"videointeract\",\"echoParam\":{}}"} + - type是类型,这个API是从某个推荐找到的,topicId暂时未知 + - sign参数为加密参数,sign=加密(token+&+t+&+appkey+data) ,PS:data参数需要urlencode + + +### 淘宝PC搜索词 + - https://suggest.taobao.com/sug?code=utf-8&q=%E5%84%BF%E7%AB%A5&k=1&area=c2c&bucketid=10 + - q参数为关键词 + + - https://suggest.taobao.com/sug?area=sug_hot&wireless=2&code=utf-8 + - 热搜词 + +### 淘宝无线搜索词 + - https://suggest.taobao.com/sug?area=b2c&code=utf-8&k=1&src=tmall_h5&q=%E8%BF%90%E5%8A%A8%E9%9E%8B + - src来源为tmall_h5 + +### 天猫超市热门搜索词 + - https://suggest.taobao.com/sug?area=tmall-hq&code=utf-8&src=chaoshi.index.m + - src来源为天猫超市h5页面 + - area地区为tmall-hq + +### 天猫国际热门搜索词 + - https://suggest.taobao.com/sug?area=tmall-hq&code=utf-8&src=tmallhk.list.app + - src是天猫国际 + - area地区为tmall-hq + + - https://suggest.taobao.com/sug?area=tmall-hq&code=utf-8&actId&type&src=mallfp..pc + - 这个应该也是 + +### 搜索词转拼音 + - https://suggest.taobao.com/sug?code=utf-8&area=py&q=%E8%BF%90%E5%8A%A8%E9%9E%8B%20%E9%80%8F%E6%B0%94 + - q为关键词,返回的就是关键词的拼音了 + +### 淘宝直通车搜索词 + - https://textlink.simba.taobao.com/lk?keyword=%C4%D0 + - q为关键词 + +### 淘宝掌柜热卖 直通车推广 + - https://tmatch.simba.taobao.com/?name=tbuad&ismall=1&o=j&pid=l%27s&count=5&keyword=%CD%AF%D7%B0&offset=10&sbid=1 + - name参数固定为tbuad + - ismall参数是控制返回的掌柜热卖是天猫还是淘宝,1是天猫,0是淘宝 + - o参数暂时固定为j + - pid参数为一个变量名称,暂时不能不要 + - count参数是返回的宝贝数量 + - keyword参数是查询的关键词 + - offset是翻页的数量,因为一页基本是5个,所以下一页的话offset就是10 + - sbid参数未可知,暂时固定为1 + + +### 淘宝宝贝的评论 + - https://rate.taobao.com/feedRateList.htm?auctionNumId=560775042477&userNumId=53422791¤tPageNum=2&pageSize=20&folded=1 + - auctionNumId参数为宝贝的ID参数,及店铺的宝贝ID + - userNumId参数是店铺主的ID,就是sellerId + +### 获取宝贝的评论 + - https://rate.tmall.com/list_detail_rate.htm?itemId=520248387700&sellerId=725677994&order=3¤tPage=2&pageSize=10&&callback=%20%20 + - itemId为宝贝id,及店铺的宝贝ID + - sellerid是店铺id + - order应该是排序方式 + - currentPage是页数 + - pageSize是个数 + +### 获取宝贝的评论 h5 + - https://h5api.m.taobao.com/h5/mtop.taobao.rate.detaillist.get/4.0/?jsv=2.4.2&appKey=12574478&t=1535870970770&sign=61d055466e10c9660d1781d1c3fe416b&api=mtop.taobao.rate.detaillist.get&v=4.0&ecode=1&type=json&dataType=jsonp&AntiCreep=true&AntiFlood=true&H5Request=true&data=%7B%22auctionNumId%22%3A%22523041572454%22%2C%22rateType%22%3A%22%22%2C%22pageSize%22%3A10%2C%22pageNo%22%3A1%7D + - api参数为api的名称 + - data参数为{"auctionNumId":"523041572454","rateType":"","pageSize":10,"pageNo":1},auctionNumId参数为宝贝id,pageNo为页数,pageSize是评论的数目,data参数提交的时候,需要urlencode + - sign参数为加密参数,sign=加密(token+&+t+&+appkey+data) ,PS:data参数是字符串,不urlencode + +### 淘宝主题市场的链接 + - https://tce.alicdn.com/api/data.htm?callback&ids=175785 + - ids参数暂时还未知,可能是某一个响应 + +### 淘宝|天猫,获取宝贝评价的标签 + - https://rate.tmall.com/listTagClouds.htm?itemId=573120190024&isAll=true&isInner=true&callback=%27 + - 返回的是jsonp,暂未找到其他参数控制返回的格式 + +## 一淘的接口 + 1 https://h5api.m.etao.com/h5/mtop.etao.fe.hotwords/1.0/?type=json&api=mtop.etao.fe.hotwords&v=1.0&appKey=12574478&data={%22count%22:100}&t=1535762310139&sign=1d66337d4d4d72049219a49fbde745af + - 获取一淘的热门关键词 + - api参数为api名称 + - t参数为时间戳 + - sign参数为加密参数,sign=加密(token+&+t+&+appkey+data) ,PS:data参数是字符串,不urlencode + - data参数为获取的数量,{%22count%22:100} 注意!这里只将里面的引号urlencode了,外面的大括号没有 + + 2 https://h5api.m.etao.com/h5/mtop.etao.fe.cjfl.activity.detail/1.0/?type=json&api=mtop.etao.fe.cjfl.activity.detail&v=1.0&appKey=12574478&data={%22pid%22:%22%22,%22activityId%22:%22747809%22,%22src%22:%22pc%22,%22n%22:50,%22s%22:0}&t=1535763121966&sign=39f113bb9327aa6ec7a7af3dbb238007 + - 获取一淘某个activityld下面的宝贝 + - api参数为api名称 + - data参数为提交的数据,{"pid":"","activityId":"747809","src":"pc","n":50,"s":20},s参数为获取的宝贝数量,src应该是来源,activityId是活动id,pid暂时未知,data参数除外面的大括号外,里面的都要urlencode一下 + + 3 https://h5api.m.etao.com/h5/mtop.etao.fe.getActivityList/1.0/?type=json&api=mtop.etao.fe.getActivityList&v=1.0&appKey=12574478&data={%22pageSize%22:20,%22pid%22:%22%22,%22src%22:%22pc%22,%22page%22:1,%22startTime%22:%222018-09-01%2000:00:00%22}&t=1535764255123&sign=c3a1e22e69706eed356c3a19cf30f61e + - 获取一淘下面的限时闪购活动的宝贝数据 + - data参数为{"pageSize":20,"pid":"","src":"pc","page":1,"startTime":"2018-09-01 00:00:00"},pageSize为获取宝贝的数量,src为来源,page为页数,startTime为开始的时间,data参数除外面的大括号外,里面的都要urlencode一下 + + 4 https://h5api.m.etao.com/h5/mtop.taobao.wsearch.suggest/1.0/?type=json&api=mtop.taobao.wsearch.suggest&v=1.0&appKey=12574478&data={%22area%22:%22wireless%22,%22q%22:%22%E7%94%B7%22}&t=1535766331296&sign=7fda0e8d61b92cf85464d11acd1d0f28 + - 获取一淘的搜索词 + - data参数为{"area":"wireless","q":"男"},area应该是地区的类型,data参数除外面的大括号外,里面的都要urlencode一下 + +## 淘宝直通车、生意参谋接口 !此接口必须登录淘宝直通车之后才可使用,是用的cookie验证 + + 1 https://sycm.taobao.com/bda/toolbox/wordAide/getCatKeys.json?dateRange=2018-09-03%7C2018-09-03&dateType=recent1&device=1&keyword=%E5%85%A5%E8%80%B3%E5%BC%8F&page=1&pageCnt=300&t=1536024603600&token=956f57c4b&_=1536024603601 + - 获取行业相关搜索词 + - device参数是搜索的平台,1为PC端,2为无线端 + - token参数为直通车登录的时候服务器返回的token,这个在请求的时候可以不要,但是返回的数据会有缺失,最好是带上 + - pageCnt参数暂时未知,这并不是返回的数量 + - page参数为页数 + - dateRange为日期区间 2018-09-03|2018-09-03 提交的时候需要urlencode + + 2 https://sycm.taobao.com/mq/portal/listHotShops.json?pageSize=10&page=2&indexCode=payAmtIndex&_=1536027509730&token=956f57c4b + - 获取行业店铺排行,获取的是当前行业的店铺排行 + - pageSize是显示的数量 + - page是页数 + - indexCode是类型,payAmtIndex是店铺,意思就是店铺的排行 + + 3 https://sycm.taobao.com/mq/portal/listHotItems.json?dateRange=&dateType=&pageSize=10&page=2&indexCode=payOrdCnt&_=1536027622286&token=956f57c4b + - 获取商品店铺排行,获取的是当前行业的商品排行 + - pageSize是显示的数量 + - page是页数 + - indexCode是类型,payAmtIndex是商品,意思就是商品的排行 + + 4 https://sycm.taobao.com/mq/portal/listKeywords.json?dateRange=&dateType=&pageSize=10&page=2&indexCode=suv&_=1536027795102&token=956f57c4b + - 获取行业关键词排行,获取的是当前行业的关键词排行 + - pageSize是显示的数量 + - page是页数 + - indexCode是类型,payAmtIndex是关键词,意思就是关键词的排行 + + 5 https://subway.simba.taobao.com/bidword/tool/adgroup/getSuggestWord.htm?adgroupId=863951546&word=%E5%8D%8A%E8%BA%AB&productId=101001005 + - 淘宝直通车的下拉框词 + - POST请求,提交的参数为sla=json&isAjaxRequest=true&token=18d76cf4 除token参数会变动外其余固定 + - adgroupId为当前组的Id,不能去掉,此id为推广的组id,如果店铺没有推广,那么可能就没有这个 + - word是查询的关键词 + - productId未知,暂时固定 + + 6 https://subway.simba.taobao.com/bidword/tool/adgroup/relative.htm?pageSize=800&wordPackage=16&adGroupId=863951546&queryWord=%E5%8D%8A%E8%BA%AB&orderBy=3&productId=101001005 + - 获取宝贝推词的关键词搜索 + - POST请求,提交的参数为sla=json&isAjaxRequest=true&token=18d76cf4 除token参数会变动外其余固定 + - pageSize是返回的数量 + - wordPackage是设备类型,16是移动设备,32是计算机,48是全部 + - adgroupId为当前组的Id,不能去掉,此id为推广的组id,如果店铺没有推广,那么可能就没有这个 + - queryWord是搜索的关键词 + - productId在宝贝推广信息中 + + 7 https://subway.simba.taobao.com/adgroup/get.htm?adGroupId=863951546 + - 获取宝贝推广信息及productId + - POST请求 参数 sla=json&isAjaxRequest=true&token=02d9e8d4 + + 8 https://subway.simba.taobao.com/report/getMarketAnalysis.htm?bidwordstr=%5B%22%E8%80%B3%E5%A1%9E%E8%80%B3%E6%9C%BA%22%5D&startDate=2018-09-04&endDate=2018-09-10 + - 关键词的市场数据分析,可以获取到展现指数和点击指数的数据 + - POST请求,提交的数据是sla=json&isAjaxRequest=true&token=16d81415,token参数是动态的 + - bidwordstr是关键词 + - startDate是开始日期 + - endDate是结束日期 + + 9 https://subway.simba.taobao.com/report/getRelatedBidwordList.htm?bidwordstr=%E8%80%B3%E5%A1%9E%E8%80%B3%E6%9C%BA&theDate=2018-09-10 + - 关键词的相关词数据分析,可以获取到展现指数和点击指数的数据 + - POST请求,提交的数据是sla=json&isAjaxRequest=true&token=16d81415,token参数是动态的 + - bidwordstr是关键词 + - startDate是开始日期 + - endDate是结束日期 + + +### 淘宝热卖|特卖接口 + 1 https://odin.re.taobao.com/m/Nwalltbuad?pid=430680_1006&features=&relacount=20&count=70&keyword=%E5%8F%8C%E8%82%A9%E5%8C%85&offset=1&refpid=430680_1006 + - 获取宝贝及相关词数据 + - features参数暂时未知,但是为真的时候数据返回发生改变 + - pid和refpid相关,是不可缺少的 + - keyword是搜索关键词 + - count是返回的宝贝的数量 + - relacount是返回的相关词的数量,最大20 + + 2 https://mo.m.taobao.com/api/keywords + - 获取无线端商品分类关键词 + + 3 http://h5api.m.taobao.com/h5/mtop.alimama.ertao.graphql.query/1.0/?jsv=2.4.0&appKey=12574478&t=1536649468275&sign=92647a8ee5fc958426a5675ce8e98bfa&api=mtop.alimama.ertao.graphql.query&v=1.0&type=json&data=%7B%22query%22%3A%22query%20keywordQuery(%24count%3A%20Long)%20%7BkeywordList(count%3A%24count)%7BdisplayKeyword%20queryKeyword%20category%20isHot%20iconUrl%20wordId%20%7D%7D%22%2C%22variables%22%3A%22%7B%5C%22count%5C%22%3A%5C%2210%5C%22%2C%5C%22bizEnvVars%5C%22%3A%7B%5C%22pid%5C%22%3A%5C%22mm_33231688_7050284_23466709%5C%22%2C%5C%22st%5C%22%3A%5C%2273%5C%22%2C%5C%22pvId%5C%22%3A%5C%22201_11.11.125.144_10419718_1536649467745%5C%22%7D%7D%22%7D + - 淘宝特卖的热门搜索 + - data参数为{"query":"query keywordQuery($count: Long) {keywordList(count:$count){displayKeyword queryKeyword category isHot iconUrl wordId }}","variables":"{\"count\":\"10\",\"bizEnvVars\":{\"pid\":\"mm_33231688_7050284_23466709\",\"st\":\"73\",\"pvId\":\"201_11.11.125.144_10420160_1536649800202\"}}"} + - 其中的有些参数应该可以去除,暂时未知 + + 4 https://odin.re.taobao.com/m/Nwalltbuad?sbid=kgb2018qixi&ignore=CATID%2CCATID%2CRANKINFO%2CMATCHTYPE&pid=430680_1006&features=10000000%2C10000027%2C10000032%2C10000034%2C10000035%2C10000036&relacount=20&count=61&keyword=%E7%94%B7%E9%9E%8B%E5%86%AC%E6%96%B0%E6%AC%BE&offset=0&refpid=mm_33231688_7050284_23466709 + - 淘宝热卖搜索 + - sbid暂时未知 + - ignore参数暂时未知,不过应该是获取某一类的数据 + - pid和refpid暂时未知,是不可缺少的 + - features暂时未知,应该是获取某一属性 + - relacount是搜索词的数量,最大20 + - count是获取的宝贝数量 + - offset是偏移量,可能是翻页 + +### 抖音小视频接口 + - 请求头必须是手机的请求头,否则不返回数据 + - 抖音热搜接口 GET请求 + https://aweme.snssdk.com/aweme/v1/hot/search/list/?detail_list=0 + - 抖音小视频接口 GET请求 + - + +### 阿里妈妈、淘宝联盟找到的数据接口 + - 选品的数据接口 GET请求 https://pub.alimama.com/items/search.json?toPage=1&queryType=2&auctionTag=&perPageSize=50 + 一些其他的参数可以通过连接符加上去,达到分类的目的,例如:https://pub.alimama.com/items/search.json?toPage=1&freeShipment=1,筛选包邮的物品 + freeShipment 包邮 shopTag=yxjh 营销和定向计划(特殊字符,值不为1) b2c 天猫旗舰店 hPayRate30 月成交转化率高于行业均值 dpyhq 优惠券 startPrice=50&endPrice=120 价格区间 startBiz30day=120 月销量120以上 startTkRate=1&endTkRate=5 收入比率1%-5% + +### 淘宝试用 获取宝贝信息 + - https://try.taobao.com/api3/call?itemId=34084036&api=x%2Fitem-info itemId为淘宝试用下的宝贝ID,其他的宝贝ID无效 + +### 阿里API + + - https://tbip.alicdn.com/api/queryip + 获取请求的IP及位置信息 + +### 淘宝卖家服务 卖家服务都是需要使用到cookie的 + + - 搜索订单 + https://trade.taobao.com/trade/itemlist/asyncSold.htm?event_submit_do_query=1&_input_charset=utf8 + POST请求 + referer: https://trade.taobao.com/trade/itemlist/list_sold_items.htm?spm=687.8433302.201.1.9kbkAx&mytmenu=ymbb&utkn=g,2h2ltytnyo6mn3f5uk26u1537440256809&scm=1028.1.1.201 + origin: https://trade.taobao.com + + formdata 提交的参数 + + auctionType: 0 + close: 0 + pageNum: 1 + pageSize: 15 + queryMore: true + rxAuditFlag: 0 + rxElectronicAllFlag: 0 + rxElectronicAuditFlag: 0 + rxHasSendFlag: 0 + rxOldFlag: 0 + rxSendFlag: 0 + rxSuccessflag: 0 + tradeTag: 0 + useCheckcode: false + useOrderInfo: false + errorCheckcode: false + action: itemlist/SoldQueryAction + orderId: 223461933352780943 + prePageNo: 1 + buyerNick: + dateBegin: 0 + dateEnd: 0 + logisticsService: + orderStatus: + queryOrder: desc + rateStatus: + refund: + sellerNick: + tabCode: latest3Months + auctionId: 557602097236 + itemTitle:宝贝名称 + buyerNick: 唯我独行之勇闯天涯 + + orderId 订单编号 auctionId 商品id itemTitle 宝贝的名称(可以用关键词) + buyerNick 买家昵称 + + - 搜索全部订单 + https://trade.taobao.com/trade/itemlist/asyncSold.htm?event_submit_do_query=1&_input_charset=utf8 + POST请求 + referer: https://trade.taobao.com/trade/itemlist/list_sold_items.htm?spm=687.8433302.201.1.9kbkAx&mytmenu=ymbb&utkn=g,2h2ltytnyo6mn3f5uk26u1537440256809&scm=1028.1.1.201 + origin: https://trade.taobao.com + + formdata 提交的参数 + + auctionType: 0 + close: 0 + pageNum: 2 //这个是第二页 + pageSize: 15 + queryMore: false + rxAuditFlag: 0 + rxElectronicAllFlag: 0 + rxElectronicAuditFlag: 0 + rxHasSendFlag: 0 + rxOldFlag: 0 + rxSendFlag: 0 + rxSuccessflag: 0 + tradeTag: 0 + useCheckcode: false + useOrderInfo: false + errorCheckcode: false + action: itemlist/SoldQueryAction + prePageNo: 1 + + 和条件搜索不同,没有了多余的条件参数 + + - 获取用户的头像 + http://wwc.alicdn.com/avatar/getAvatar.do?userNick=%E8%8B%B1%E9%9B%84%E4%BA%A6%E6%9E%89%E7%84%B6&_input_charset=UTF-8&width=80&height=80&type=sns + userNick是用户的昵称 + + - 获取用户的淘气值 --已失效 + https://vip.taobao.com/ajax/getGoldUser.do?_input_charset=utf-8&from=diaoding + + - 获取用户的信息,包括昵称 + http://helpcenter.taobao.com/service/getTaobaoContentConfig.do?requestId=eb948679c883a4&from=taobao&type=taobao + - 这是一个302跳转,跳转到真正的API requestId参数可以使用format(int(str(random.random())[2:64]),'x')来生成 + - https://helpcenter.taobao.com/service/getTaobaoContentConfig.do?requestId=eb948679c883a4&from=taobao&type=taobao + - 这个是获取用户信息的真正API + + requestid生成 Math.random().toString(15).substr(2, 64) + + - h5页面获取主页信息 + https://h5api.m.taobao.com/h5/mtop.taobao.social.personal.home.get/2.0/?jsv=2.4.2&appKey=12574478&t=1543468803942&sign=222b61b5180a6048930da6c09e3903fb&api=mtop.taobao.social.personal.home.get&v=2.0&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb2&data=%7B%22targetUserIdStr%22%3A%221090955643%22%2C%22pageNo%22%3A1%2C%22anonymous%22%3Afalse%2C%22lastTime%22%3A1%7D + GET请求 使用h5请求返回提示API入口未授权 + + - h5页面获取个人主页信息,head + https://h5api.m.taobao.com/h5/mtop.taobao.social.heartcontent.heart/1.0/?jsv=2.4.2&appKey=12574478&t=1543469102153&sign=13e5b17ab1152444709c32cad8cb18b3&api=mtop.taobao.social.heartcontent.heart&v=1.0&ecode=1&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb4&data=%7B%22heartId%22%3A%221090955643%22%7D + GET请求 使用H5请求提示API入口未授权 + + - h5页面获取个人主页信息,feed更新 + https://h5api.m.taobao.com/h5/mtop.taobao.social.personal.feed.update/1.0/?jsv=2.4.2&appKey=12574478&t=1543469359898&sign=04d4d493f9df491ea245a2199606a532&api=mtop.taobao.social.personal.feed.update&v=1.0&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb5&data=%7B%22feedId%22%3A%221090955643%22%2C%22type%22%3A2%7D + GET请求 提示"FAIL_BIZ_FAIL_BIZ_ERROR::没有相关权限" + + - h5页面获取个人主页信息 remove + https://h5api.m.taobao.com/h5/mtop.taobao.social.personal.album.remove/1.0/?jsv=2.4.2&appKey=12574478&t=1543469429433&sign=5361bb72b7e13ef64f4cfe6a1d47fe88&api=mtop.taobao.social.personal.album.remove&v=1.0&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb6&data=%7B%22feedId%22%3A%221090955643%22%2C%22target%22%3A%22aa%22%7D + GET请求 提示"FAIL_BIZ_FAIL_BIZ_ERROR::没有相关权限" + + - h5页面获取个人主页信息 社交个人封面更新 + https://h5api.m.taobao.com/h5/mtop.taobao.social.personal.cover.update/1.0/?jsv=2.4.2&appKey=12574478&t=1543469568881&sign=b611bab20331f88d7e46a6188bc028e3&api=mtop.taobao.social.personal.cover.update&v=1.0&dataType=originaljsonp&isSec=1&jsonpIncPrefix=weexcb&ttid=2018%40weex_h5_0.12.11&type=originaljsonp&callback=mtopjsonpweexcb8&data=%7B%22cover%22%3A%22https%3A%2F%2Fwww.google.co.uk%2Flogos%2Fdoodles%2F2018%2Fcelebrating-400o-of-murillo-5901104519839744-s.png%22%7D + + - https://h5.m.taobao.com/mlapp/odetail.html?bizOrderId=289693537721954356&archive=false + 直接打开订单详情页面,bizOrderId是订单id + - h5页面获取订单信息 + https://h5api.m.taobao.com/h5/mtop.order.querydetail/4.0/?jsv=2.4.16&appKey=12574478&t=1544492681175&sign=e1fb5b32f4ec6e22facc23cdd73c98dd&api=mtop.order.querydetail&v=4.0&ttid=2018%40taobao_h5_7.9.1&isSec=0&ecode=0&AntiFlood=true&AntiCreep=true&H5Request=true&type=jsonp&dataType=jsonp&callback=mtopjsonp2&data=%7B%22appVersion%22%3A%221.0%22%2C%22appName%22%3A%22tborder%22%2C%22bizOrderId%22%3A%22289653729107954356%22%7D + data参数为:{"appVersion":"1.0","appName":"tborder","bizOrderId":"289653729107954356"} + bizorderid应该是订单id + + - h5页面获取用户订单详情 + https://api.m.taobao.com/h5/mtop.order.queryagileorderdetail/1.0/?v=1.0&api=mtop.order.queryAgileOrderDetail&appKey=12574478&t=1544509511530&callback=mtopjsonp1&type=jsonp&sign=0deeaf4f09bf4f6438b4ba4f7eed0668&data=%7B%22orderId%22%3A%22289693537721954356%22%2C%22archive%22%3A%22false%22%7D + data参数为:{"orderId":"289693537721954356","archive":"false"} + + - h5页面预创建天猫订单 + https://h5api.m.tmall.com/h5/mtop.trade.buildorder.h5/3.0/?jsv=2.4.7&appKey=12574478&t=1544516732749&sign=9ba666257041cb811c5efc672bf3a8b5&api=mtop.trade.buildOrder.h5&v=3.0&type=originaljson&timeout=20000&isSec=1&dataType=json&ecode=1&ttid=%23b%23ad%23%23_h5&AntiFlood=true&LoginRequest=true&H5Request=true&x-itemid=572446598047&x-uid=1090955643 + POST请求 data参数为:{"itemId":40315843074,"quantity":1,"buyNow":true,"skuId":4044124014649,"serviceId":null,"exParams":"{\"buyFrom\":\"tmall_h5_detail\"}"} + + - h5页面查找订单物流信息 + https://api.m.taobao.com/h5/mtop.logistic.getlogisticbyorderid/1.0/?v=1.0&api=mtop.logistic.getLogisticByOrderId&appKey=12574478&t=1544614326559&callback=mtopjsonp2&type=jsonp&sign=a41157ff5421621da3b1c7c4a1672a01&data=%7B%22orderId%22%3A%22289693537721954356%22%7D + + - h5页面创建天猫订单 + https://h5api.m.tmall.com/h5/mtop.trade.createorder.h5/3.0/?jsv=2.4.7&appKey=12574478&t=1544691075633&sign=3cd8e8d43aee49605f7e28873a1dc6bc&api=mtop.trade.createOrder.h5&v=3.0&type=originaljson&timeout=20000&dataType=json&isSec=1&ecode=1&ttid=%23b%23ad%23%23_h5&AntiFlood=true&LoginRequest=true&H5Request=true&submitref=0a67f6&x-itemid=582669490363&x-uid=1090955643 + POST请求 data参数为:{data:{params:{ + data:{ + agencyPay_1, + anonymous_1, + ncCheckCode_ncCheckCode1, + submitOrder_1, + 还有四个动态的, + 取linkage下的input列表里的所有名称, + 取linkage下的request列表里的1,3名称, + 然后从预创建订单的data数据中提取 + }, + hierarchy:"这个数据是预创建订单下的hierarchy的structure所有数据", + linkage:"这个数据是预创建订单下的linkage的common所有数据" + }} + + +### UC浏览器、UC头条 + + - UC参数的生成 + uuid参数:使用JS + ```javascript + function uuid(){ + function e() { + return (65536 * (1 + Math.random()) | 0).toString(16).substring(1) + } + return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()} + ``` + + + + - 获取某个资源的信息 + https://mparticle.uc.cn/api/articleinfo?aid=3e6b5ee767954baea5ec1fdc057c42fb&source=2 + + - 获取资源信息 + https://ff.dayu.com/contents/origin/3e6b5ee767954baea5ec1fdc057c42fb?biz_id=1002&_fetch_author=1&_fetch_incrs=1 + _fetch_author为1是获取作者信息 + _fetch_incrs为1,暂不可知 + biz_id暂未可知 + 3e6b5ee767954baea5ec1fdc057c42fb是资源的id地址 + + - 获取作者的资源集 + https://mpapi.uc.cn/api/v1/wemedias/79b0513cf97f41a4bd7c14171db5ce1d/video?uc_param_str=frdnsnpfvecpntnwprdssskt&fr=android&dn=43106156974-1f2c0f99&sn=1805-43106156974-30d793f9&pf=145&ve=12.1.3.993&cp=isp:%E8%81%94%E9%80%9A;prov:%E6%B9%96%E5%8C%97;city:%E6%AD%A6%E6%B1%89;na:%E4%B8%AD%E5%9B%BD;cc:CN;ac:&nt=2&nw=WIFI&pr=UCMobile&ds=bTkwBBaGcv6K25QsNnOmXzbIxtCYqQJqpjZ%2B%2Ff%2B%2FgFyMKA%3D%3D&ss=360x640&kt=4&_=1538111151484&callback=jsonp5 + + - 打开资源的网页 + https://mparticle.uc.cn/video.html?uc_param_str=frdnsnpfvecpntnwprdssskt#!wm_aid=3e6b5ee767954baea5ec1fdc057c42fb!!wm_id=79b0513cf97f41a4bd7c14171db5ce1d + wm_aid是资源的地址,wm_id暂时未可知,可能是作者的id + + - 获取某个数据集,这里面都是新闻资源的id,可通过https://m.uczzd.cn/webview/news?app=uc-iflow&aid=1071679986962559209 替换aid参数来打开 + https://m.uczzd.cn/iflow/api/v1/article?aid=%5B%2210325317762042420546%22%5D&app=&uc_param_str=dnnivebichfrmintcpgieiwidsudpf&cid=&content_cnt=1 + aid参数是:["10325317762042420546"] 咱未可知 + uc_param_str这个参数应该是默认,固定的 + + - 获取视频资源 + https://mparticle.uc.cn/api/vps?token=Tyt7c4t%2BGsQHAL7faTmsBw%3D%3D&ums_id=6f4a5d66f30ac644&wm_cid=238376182585492480&wm_id=79b0513cf97f41a4bd7c14171db5ce1d + ums_id是视频的播放地址id + wm_cid暂未可知 + wm_id暂未可知 + + - 获取某个视频的评论 + https://m.uczzd.cn/iflow/api/v2/cmt/article/10325317762042420546/comments/byhot?app=uc-iflow&ucid=&uc_param_str=frdnsnpfvecpntnwprdssskt&hotValue=-1&count=5&dn=1538112126003 + + - 视频集,不知道有什么用 + https://napi.uc.cn/3/classes/share_shield_aid/objects/fbaf69e1b3824289b1463b005a12b12a?_app_id=haouc_zt&_fetch=1&_max_age=60 + + - 猜你喜欢,推荐的视频,这个应该是通过当前视频然后推荐的视频 + https://m.uczzd.cn/iflow/api/v1/article/hotnews?app=uc-iflow&zzd_from=uc-iflow&uc_param_str=frdnsnpfvecpntnwprdssskt&sn=88551936166162700723691&category=%E9%9F%B3%E4%B9%90,%E7%A4%BE%E4%BC%9A,%E5%BD%B1%E8%A7%86%E5%89%A7,%E8%90%8C%E5%AE%A0,%E7%BB%BC%E8%89%BA,%E5%A8%B1%E4%B9%90&type=video&size=20&days=1&sort=ctr&show=30000 + category参数是:音乐,社会,影视剧,萌宠,综艺,娱乐 + sn参数暂未可知 + + - 热门新闻 + https://m.uczzd.cn/iflow/api/v1/article/hotnews?app=uc-iflow&zzd_from=uc-iflow&uc_param_str=frdnsnpfvecpntnwprdssskt&sn=88551936166162700723691&type=text&size=6&category=%E7%A4%BE%E4%BC%9A&sort=ctr&days=1&show=30000 + category参数为:社会 应该是根据这个来推送的,请求其他类目也是根据这个,sn参数不变 + + - 获取UC头条的类目 + http://iflow.uczzd.cn/iflow/api/v1/channels?app=uc-iflow&uc_param_str=dnnivebichfrmintcpgidsudsvmedizbss&dn=43106156974-1f2c0f99&nn=AATta%2BH2xETWvFipdYmPBUIF%2BYPJw2AgLnB5uiiNy5fOwA%3D%3D&ve=12.1.3.993&bi=35030&ch=yzappstore%40&fr=android&mi=MI%204S&nt=2&pc=AAQRAtQtd9XY54gmHPf775eH8LwZoaZ9lGfAEMHcKaRyAzTx99fBuMyzodHB8Esck%2BCIt8ihHoZDe61Na0skpZb4&gp=AARcLQ4xEy3vGVPTRVWVc1KfeTGy2KaVsm8%2ByH2dUpBTZg%3D%3D&ut=AARQq5Dybgul2R6CkCuA43YVyeMMbZriBbS%2BXG8nGrelXw%3D%3D&ai=&sv=ucreleased&me=AASi5QJQGb1KkFkfdnGKIqDo&di=49a8457f6eebcf2&zb=00000&ss=1080x1920&zb=00000&puser=0&ressc=12 + + - 获取某个类目 + http://iflow.uczzd.cn/iflow/api/v1/channels?app=uc-iflow&tab=video&uc_param_str=dnnivebichfrmintcpgidsudsvmedizbss&dn=43106156974-1f2c0f99&nn=AATta%2BH2xETWvFipdYmPBUIF%2BYPJw2AgLnB5uiiNy5fOwA%3D%3D&ve=12.1.3.993&bi=35030&ch=yzappstore%40&fr=android&mi=MI%204S&nt=2&pc=AAQRAtQtd9XY54gmHPf775eH8LwZoaZ9lGfAEMHcKaRyAzTx99fBuMyzodHB8Esck%2BCIt8ihHoZDe61Na0skpZb4&gp=AARcLQ4xEy3vGVPTRVWVc1KfeTGy2KaVsm8%2ByH2dUpBTZg%3D%3D&ut=AARQq5Dybgul2R6CkCuA43YVyeMMbZriBbS%2BXG8nGrelXw%3D%3D&ai=&sv=ucreleased&me=AASi5QJQGb1KkFkfdnGKIqDo&di=49a8457f6eebcf2&zb=00000&ss=1080x1920&zb=00000&puser=0&ressc=12 + + - 获取天气数据 + http://wea.uc.cn/v2/get_weather_express.php?v=2&uc_param_str=dnvebipf&dn=43106156974-1f2c0f99&ve=12.1.3.993&bi=35030&pf=145&vkey=@ucbrowser@&date=2018-09-28&vcode=981ac209aba765e421644c913cc0b378&sel_city=AAO0%2F9MA8cIOPiuEUzmhEg2A&sel_county=AAMeNasDZ%2Bi6tPEvVM5E7eJy + + + + +### 淘宝淘口令生成抓包 + + type的类型 + + AUTO:-1, + COPY:64, + LAIWANG:8, + LAIWANG_TIMELINE:16, + QQ:128, + QZONE:256, + SMS:4, + WEIBO:2, + WEIXIN:1, + WEIXIN_TIMELINE:32 + + "api": "mtop.tmw." + param[0], + "v": "1.0", + "post": "1", + "ecode": "1", + "isSec": "1", + "param": mtopParam + + +### 娱乐宝 + + 1. 获取用户信息 + http://h5api.m.taobao.com/h5/com.de.ylb.app.user.get/1.0/?jsv=2.4.2&appKey=12574478&t=1538407630133&sign=ee4a273c55902f09607faf6c6945346d&ecode=1&v=1.0&type=jsonp&api=com.de.ylb.app.user.get&dataType=jsonp&callback=mtopjsonp2&data=%7B%22appVersion%22%3A%221.0%22%2C%22channel%22%3A%22h5%22%2C%22needBuyInfo%22%3A%22true%22%2C%22needDreamInfo%22%3A%22true%22%2C%22needWelfareInfo%22%3A%22true%22%2C%22needC2bProjectInfo%22%3A%22true%22%7D + + - 此接口获取用户简要信息,昵称及隐藏的手机号 + - data参数为:{"appVersion":"1.0","channel":"h5","needBuyInfo":"true","needDreamInfo":"true","needWelfareInfo":"true","needC2bProjectInfo":"true"} + + +### 充值 + 1. 获取请求的定位信息 + http://h5api.m.taobao.com/h5/mtop.wtt.server.customer.getcitybyip/1.0/?jsv=2.4.11&appKey=12574478&t=1538408433192&sign=574d841029cf4048770023d13c26cf7f&api=mtop.wtt.server.customer.getCityByIp&v=1.0&type=jsonp&dataType=jsonp&callback=mtopjsonp1&data=%7B%22q%22%3A%22test%22%7D + - data参数为:{"q":"test"} 可能这个参数可以替换成其他东西 + + 2. 获取用户的电话信息 + http://h5api.m.taobao.com/h5/mtop.chongzhimobile.queryecard/2.0/?jsv=2.4.11&appKey=12574478&t=1538408613220&sign=71f6e898efd89b5c468e237355474d51&api=mtop.chongzhimobile.queryEcard&v=2.0&type=json&dataType=jsonp&timeout=20000&forceH5=true&data=%7B%22ttid%22%3A%22%22%2C%22mobile%22%3A%2213739243380%22%2C%22userId%22%3A%221090955643%22%2C%22sceneCode%22%3A%22%22%2C%22clientSource%22%3A%22unknown_h5_tcc%22%2C%22subSource%22%3A%22wtcz_1%22%7D + - data参数为:{"ttid":"","mobile":"13739243380","userId":"1090955643","sceneCode":"","clientSource":"unknown_h5_tcc","subSource":"wtcz_1"} + - 猜想:如果把userid替换成其他用户,并且不填手机号,是否可以获取其他用户的信息? + + 3. 获取用户的电话信息 + https://h5api.m.taobao.com/h5/mtop.wtt.cif.user.querysingleaccountbalance/1.0/?jsv=2.4.0&appKey=12574478&t=1538408858817&sign=e544e09dd2327b62e1f095a7d80d48ed&v=1.0&type=json&dataType=jsonp&timeout=20000&api=mtop.wtt.cif.user.querySingleAccountBalance&data=%7B%22account%22%3A%2213739243380%22%2C%22accountType%22%3A%221%22%2C%22apiType%22%3A2%7D + - data参数为:{"account":"13739243380","accountType":"1","apiType":2} + + 4. 获取用户的手机充值信息,应该是经常充值或已充值过的手机号 + https://h5api.m.taobao.com/h5/mtop.chongzhimobile.querycontactlist/1.0/?jsv=2.4.2&appKey=12574478&t=1541557298130&sign=6084290d6c402164aa2ba83849a9b09e&api=mtop.chongzhimobile.queryContactList&v=1.0&timeout=10000&successCodes=0000%2Csuccess%2CSUCCESS&AntiCreep=true&AntiFlood=true&type=jsonp&dataType=jsonp&callback=mtopjsonp10&data=%7B%7D + - data参数为:{} + - 此api可能需要登录才可使用 + + +### 商品 + + 1. 获取某个宝贝的库存 + https://detailskip.taobao.com/service/getData/1/p2/item/detail/sib.htm?itemId=528392541802&modules=qrcode,viewer,price,contract,duty,xmpPromotion,dynStock,delivery,upp,sellerDetail,activity,fqg,zjys,coupon + - itemId为宝贝id参数,如果要查看其他宝贝,更改这个参数 + - modules参数应该是要查找的数据,这个不是很明白 + - 访问此URL必须携带referer,https://item.taobao.com/item.htm?id=524122865283 此宝贝id和请求的url并无关联关系,固定就行 + + + +获取一个注册信息,可能有用 +http://cf.aliyun.com/nvc/nvcPrepare.json?a=%7B%22a%22%3A%22CF_APP_IC_WAPLogin_H5%22%2C%22d%22%3A%22nvc_register_h5%22%2C%22c%22%3A%221538409485217%3A0.8631741633273535%22%7D + +query参数为:a: {"a":"CF_APP_IC_WAPLogin_H5","d":"nvc_register_h5","c":"1538409485217:0.8631741633273535"} + + +### 淘宝JS中的接口,不一定能用 + + "api": "mtop.collocation.collocation.h5.query", + "v": "1.0", + "data": { + "itemId": t.itemId, + "sellerId": o.userId + } + + + { + "api": "mtop.tmall.rateweb.DetailRateService.coronetGetRateList", + "v": "1.0", + "data": t, + "ecode": 0, + "AntiCreep": !0 + } + + { + "api": "mtop.taobao.mystreet.service.getCouponList", + "v": "1.0", + "ecode": 0, + "data": { + "sellerId": t.sellerId + } + +{ + "api": "mtop.taobao.buyerResourceMtopWriteService.applyCoupon", + "v": "3.0", + "data": { + "spreadId": n, + "channel": t.applyChannel, + "uuid": i, + "supplierId": t.sellerId + }, + "ecode": 0, + "timeout": 3e4 + } + +{ + "api": "mtop.trade.addBag", + "v": "3.1", + "ecode": 1, + "type": "POST", + "data": i, + "ttid": app.query("ttid") || "tmalldetail" + } + +{ + "api": "mtop.tmall.detail.bundleitem", + "v": "1.0", + "data": { + "itemId": i.itemId + }, + "ttid": "tmalldetail" + } +{ + "api": "mtop.tmall.detail.getcommondetail", + "v": "1.0", + "data": { + "itemId": n.item.itemId, + "exParams": JSON.stringify(u), + "id": n.item.itemId, + "isCommonDetail": !0 + }, + "ecode": 1, + "ttid": v["default"].unparam(location.href.split("?")[1]).ttid || "2017@taobao_h5_6.6.0" + } + +### 淘宝通用接口 + + 1. 获取服务器时间戳,此接口访问后不设置cookie + https://acs.m.taobao.com/gw/mtop.common.getTimestamp/* + + 2. 获取请求ip的区域信息,省市 + https://tbip.alicdn.com/api/queryip\ + + 3. 淘宝开放平台所有文档数据接口 + https://open.taobao.com/handler/document/getApiCatelogConfig.json?scopeId=&treeId=&docId=24515&docType=2&_tb_token_=5305ee5e533ee + 请求的时候带上cookie,cookie的_tb_token和链接一样就行,不会校验 + + 4. 淘宝开放平台获取文档的详细信息 + https://open.taobao.com/handler/document/getDocument.json?treeId=&docId=24515&docType=2&_tb_token_=5305ee5e533ee + 请求的时候带上cookie,cookie的_tb_token和链接一样就行,不会校验 + + 5. 查询IP的地址信息,省市 + http://ip.soshoulu.com/ajax/shoulu.ashx?_type=ipsearch&ip=119.98.171.152&px=1 GET请求 ip参数就是ip地址 + https://tool.lu/ip/ajax.html POST请求 ip参数 + + +### 淘宝联盟接口 + !!淘宝联盟的接口可能需要登录 + + + 2. 获取宝贝信息 + https://acs.m.taobao.com/h5/mtop.alimama.moon.provider.edetail.iteminfo.get/1.0/?appKey=12574478&t=1542437132533&sign=1abc1f6d95fb4bf79c42c1d47e939f56&api=mtop.alimama.moon.provider.edetail.iteminfo.get&v=1.0&AntiCreep=true&type=originaljson&ecode=0&dataType=jsonp + post请求 data参数为:{"url":"https://s.click.taobao.com/t?e=m%3D2%26s%3DO%2BCUnSBV8QFw4vFB6t2Z2ueEDrYVVa64K7Vc7tFgwiGx5e2f4Vr4dbgKmteb7JhdVkTGlWTgx8mC31e3uwOSoHtW%2B0OGgR2yFScAXQ3w5JqBzc75rkjDlzAs2rYt25AGPsU5I8XltDvlTBm6mOhvTy%2FeXe5PtN%2B1%2Bv5GjHJRsEx06C8m1cyyaxFGHZdq7uUromfkDJRs%2BhU%3D&scm=null&pvid=100_11.182.80.227_220438_3321542436582075963&app_pvid=59590_11.8.46.90_39537_1542436582073&ptl=floorId:5004;pvid:100_11.182.80.227_220438_3321542436582075963;app_pvid:59590_11.8.46.90_39537_1542436582073&union_lens=lensId:0b082e5a_c54c_167206272df_4724&spm=a21wq.8448191.3438014.0&spm=a21wq.8448191.1000.1"} + + + +# 淘宝直通车字段解释 + + var h = (a(r = { + newUv: { + name: "新访客", + type: "int" + }, + oldUv: { + name: "老访客", + type: "int" + }, + avgPv: { + name: "人均浏览量", + type: "float" + }, + cltCnt: { + name: "收藏人数", + type: "int" + }, + bounceRate: { + name: "跳失率", + type: "percent" + }, + crtVldAmt: { + name: "下单金额", + type: "float" + }, + crtByrCnt: { + name: "下单买家数", + type: "int" + }, + crtRate: { + name: "下单转化率", + type: "percent" + }, + uvValue: { + name: "UV价值", + type: "float" + }, + bounceSelfUv: { + name: "店内跳转人数", + type: "int" + }, + bounceUv: { + name: "跳出本店人数", + type: "int" + }, + avgPayCnt: { + name: "人均支付件数", + type: "float" + }, + cartOrderRate: { + name: "连带率", + type: "float" + }, + pv: { + name: "浏览量", + type: "int", + useHumanNumber: !0 + }, + uv: { + name: "访客数", + type: "int", + useHumanNumber: !0 + }, + payAmt: { + name: "支付金额", + type: "int", + useHumanNumber: !0 + }, + olderPayAmt: { + name: "老买家支付金额", + type: "int", + useHumanNumber: !0 + }, + payAmtRate: { + name: "支付金额占比", + type: "percent" + }, + payItemQty: { + name: "支付件数", + type: "int", + useHumanNumber: !0 + }, + payItemCnt: { + name: "支付商品件数", + type: "int", + useHumanNumber: !0 + }, + payItmCnt: { + name: "支付件数", + type: "int", + useHumanNumber: !0 + }, + payPct: { + name: "客单价", + type: "float" + }, + payUnitPrice: { + name: "客单价", + type: "float" + }, + payBuyerCnt: { + name: "支付买家数", + type: "int", + useHumanNumber: !0 + }, + payByrCnt: { + name: "支付买家数", + type: "int" + }, + payRate: { + name: "支付转化率", + type: "percent" + }, + p4pExpendAmt: { + name: "直通车消耗", + type: "float", + useHumanNumber: !0 + }, + zzExpendAmt: { + name: "钻石展位消耗", + type: "float", + useHumanNumber: !0 + }, + tkExpendAmt: { + name: "淘宝客佣金", + type: "float", + useHumanNumber: !0 + }, + applyRefundAmt: { + name: "申请退款金额", + type: "float" + }, + successRefundAmt: { + name: "成功退款金额", + type: "float", + useHumanNumber: !0 + }, + rfdSucRate: { + name: "成功退款率", + type: "percent" + }, + afterSuccessRefundAmt: { + name: "售后成功退款金额", + type: "float" + }, + onApplyRfdAmt: { + name: "售中申请退款金额", + type: "float" + }, + addCartItemQty: { + name: "加购件数", + type: "int", + useHumanNumber: !0 + }, + addCartBuyerCnt: { + name: "加购人数", + type: "int", + useHumanNumber: !0 + }, + itemFavBuyerCnt: { + name: "商品收藏人数", + type: "int", + useHumanNumber: !0 + }, + itemUv: { + name: "商品访客数", + type: "int" + }, + itmUv: { + name: "商品访客数", + type: "int" + }, + itemPv: { + name: "商品浏览量", + type: "int" + }, + seLeUv: { + name: "搜索引导访客数", + type: "int" + }, + seLePv: { + name: "搜索引导浏览量", + type: "int" + }, + seLePayRate: { + name: "搜索引导支付转化率", + type: "percent" + }, + mktShare: { + name: "市场份额", + type: "percent" + }, + payOldByrCnt: { + name: "支付老买家数", + type: "int", + useHumanNumber: !0 + }, + cartCnt: { + name: "加购件数", + type: "int", + useHumanNumber: !0 + }, + cltItmCnt: { + name: "商品收藏人数", + type: "int", + useHumanNumber: !0 + }, + unpayByrCnt: { + name: "未支付访客数", + type: "int", + useHumanNumber: !0 + }, + buyPntRate: { + name: "购买渗透率", + type: "percent" + }, + uvPntRate: { + name: "访客渗透率", + type: "percent" + }, + sePntRate: { + name: "搜索渗透率", + type: "percent" + }, + favPntRate: { + name: "收藏渗透率", + type: "percent" + }, + addCartPntRate: { + name: "加购渗透率", + type: "percent" + }, + csInRfdRate: { + name: "介入率", + type: "percent4" + }, + cmptRate: { + name: "投诉率", + type: "percent4" + }, + rfdDsptRate: { + name: "纠纷退款率", + type: "percent4" + }, + rfdEndRate: { + name: "退款自主完结率", + type: "percent" + }, + rfdEndTime: { + name: "退款时长", + type: "float" + }, + rfdGoodsSucRate: { + name: "退货退款率", + type: "percent" + }, + rfdRate: { + name: "仅退款率", + type: "percent" + }, + rfdSucQaRate: { + name: "品质退款率", + type: "percent" + } + }, "rfdSucRate", { + name: "退款率", + type: "percent" + }), + a(r, "svrRankExceedRate", { + name: "售后服务综合指标行业排名占比", + type: "percent0" + }), + a(r, "rfdAmt", { + name: "成功仅退款金额", + type: "float" + }), + a(r, "cmptCnt", { + name: "投诉成立笔数", + type: "int" + }), + a(r, "rfdDsptCnt", { + name: "纠纷退款笔数", + type: "int" + }), + a(r, "afterRfdSucAmt", { + name: "售后成功退款金额", + type: "float" + }), + a(r, "rfdSucAmt", { + name: "成功退款金额", + type: "float", + useHumanNumber: !0 + }), + a(r, "rfdSucCnt", { + name: "成功退款笔数", + type: "int" + }), + a(r, "rfdSucItmQaCnt", { + name: "品质退款商品数", + type: "int" + }), + a(r, "rfdSucQaCnt", { + name: "品质退款笔数", + type: "int" + }), + a(r, "rfdSucGoodsAmt", { + name: "成功退货退款金额", + type: "float" + }), + a(r, "rfdAvgEndTime", { + name: "仅退款自主完结平均时长(天)", + type: "float" + }), + a(r, "rfdGoodsAvgEndTime", { + name: "退货退款自主完结平均时长(天)", + type: "float" + }), + a(r, "itemDsr", { + name: "描述相符评分", + type: "float5" + }), + a(r, "logisticsDsr", { + name: "物流服务评分", + type: "float5" + }), + a(r, "serviceDsr", { + name: "卖家服务评分", + type: "float5" + }), + a(r, "activeReviewCnt", { + name: "主动评价数", + type: "int" + }), + a(r, "badReviewCnt", { + name: "负面评价数", + type: "int" + }), + a(r, "reviewCnt", { + name: "评价数", + type: "int" + }), + a(r, "goodReviewCnt", { + name: "正面评价数", + type: "int" + }), + a(r, "oldBuyerBadReviewCnt", { + name: "老买家负面评价数", + type: "int" + }), + a(r, "oldBuyerGoodReviewCnt", { + name: "老买家正面评价数", + type: "int" + }), + a(r, "pictureReviewCnt", { + name: "有图评价数", + type: "int" + }), + a(r, "sellerExplainCnt", { + name: "卖家解释数", + type: "int" + }), + a(r, "itemCnt", { + name: "商品相关评价", + type: "int" + }), + a(r, "logisticsCnt", { + name: "物流相关评价", + type: "int" + }), + a(r, "packageCnt", { + name: "包装相关评价", + type: "int" + }), + a(r, "ppRatioCnt", { + name: "性价比相关评价", + type: "int" + }), + a(r, "serviceCnt", { + name: "服务相关评价", + type: "int" + }), + a(r, "clkRatePc", { + name: "PC围观人数占比", + type: "percent" + }), + a(r, "clkRateApp", { + name: "手淘围观人数占比", + type: "percent" + }), + a(r, "payRatePc", { + name: "PC支付转化率", + type: "percent" + }), + a(r, "payRateApp", { + name: "无线支付转化率", + type: "percent" + }), + a(r, "payOrdCntPc", { + name: "PC支付子订单数", + type: "int" + }), + a(r, "payOrdCntApp", { + name: "无线支付子订单数", + type: "int" + }), + a(r, "payOrdAmtPc", { + name: "pc端支付金额", + type: "float" + }), + a(r, "payOrdAmtWl", { + name: "无线端支付金额", + type: "float" + }), + a(r, "payOrdCnt", { + name: "支付子订单数", + type: "int", + useHumanNumber: !0 + }), + a(r, "rfdShippedAmt", { + name: "成功已发货仅退款金额", + type: "float" + }), + a(r, "rfdUnShippedAmt", { + name: "成功未发货仅退款金额", + type: "float" + }), + a(r, "descScore", { + name: "描述相符", + type: "float5" + }), + a(r, "descScore3", { + name: "描述相符3分及以下评价数", + type: "int" + }), + a(r, "serviceScore", { + name: "卖家服务", + type: "float5" + }), + a(r, "serviceScore3", { + name: "卖家服务3分及以下评价数", + type: "int" + }), + a(r, "lgtScore", { + name: "物流服务", + type: "float5" + }), + a(r, "lgtScore3", { + name: "物流服务3分及以下评价数", + type: "int" + }), + a(r, "avgPayShipTime", { + name: "平均支付-发货时长", + type: "hour" + }), + a(r, "avgPaySignTime", { + name: "平均支付-签收时长", + type: "hour" + }), + a(r, "avgShipSignTime", { + name: "平均发货-签收时长", + type: "hour" + }), + a(r, "avgShipTakeOverTime", { + name: "平均发货-揽收时长", + type: "hour" + }), + a(r, "avgTakeOverSignTime", { + name: "平均揽收-签收时长", + type: "hour" + }), + a(r, "stayTime", { + name: "平均停留时长", + type: "second" + }), + a(r, "dealFullPkgRate", { + name: "物流详情完整度", + type: "percent" + }), + a(r, "deliveryPkgCnt", { + name: "派送包裹数", + type: "int" + }), + a(r, "lgtByrNgtvRmkRate", { + name: "物流差评率", + type: "percent" + }), + a(r, "payMordCnt", { + name: "支付父订单数", + type: "int" + }), + a(r, "shipPkgCnt", { + name: "发货包裹数", + type: "int" + }), + a(r, "signExceptionPkgCnt", { + name: "异常包裹数", + type: "int" + }), + a(r, "signFailPkgCnt", { + name: "拒签包裹数", + type: "int" + }), + a(r, "signFailPkgRate", { + name: "拒签率", + type: "percent" + }), + a(r, "signSucPkgCnt", { + name: "签收成功包裹数", + type: "int" + }), + a(r, "signSucPkgRate", { + name: "签收成功率", + type: "percent" + }), + a(r, "takeOverPkgCnt", { + name: "揽收包裹数", + type: "int" + }), + a(r, "takeOverPkg72HCnt", { + type: "int", + name: "支付后超72小时揽收包裹数" + }), + a(r, "unShipPayMord24HCnt", { + type: "int", + name: "24小时未发货支付父订单数" + }), + a(r, "unShipPayMord48HCnt", { + type: "int", + name: "48小时未发货支付父订单数" + }), + a(r, "unShipPayMordCnt", { + type: "int", + name: "未发货支付父订单数" + }), + a(r, "unTakeOverMord24HCnt", { + type: "int", + name: "24小时未揽收支付父订单数" + }), + a(r, "unTakeOverMord48HCnt", { + type: "int", + name: "48小时未揽收支付父订单数" + }), + a(r, "signPkg7DCnt", { + type: "int", + name: "揽签超7日签收成功包裹数" + }), + a(r, "signPkg2DCnt", { + type: "int", + name: "派签超2日签收成功包裹数" + }), + a(r, "signPkgCmptCnt", { + type: "int", + name: "虚假签收投诉包裹数" + }), + a(r, "lgtCompanyCnt", { + type: "int", + name: "合作物流公司" + }), + a(r, "receiptCnt", { + type: "string", + name: "收货地区分布" + }), + a(r, "cpName", { + type: "string", + name: "合作物流公司" + }), + a(r, "areaName", { + type: "string", + name: "收货地区" + }), + a(r, "cashFlowIndex", { + name: "现金流动性指数", + type: "float5" + }), + a(r, "finaAbiltyIndex", { + name: "理财收益能力指数", + type: "float5" + }), + a(r, "recvTurIndex", { + name: "应收账款周转指数", + type: "float5" + }), + a(r, "accountBalance", { + name: "可自动生息资金", + type: "float" + }), + a(r, "crdLimitAmt", { + name: "信用可贷现金额度", + type: "float" + }), + a(r, "assetsDebtRate", { + name: "资产负债率", + type: "percent" + }), + a(r, "assetsAmt", { + name: "资产金额", + type: "float" + }), + a(r, "debtAmt", { + name: "负债金额", + type: "float" + }), + a(r, "incomeAmt", { + name: "营业收入金额", + type: "float" + }), + a(r, "expnsAmt", { + name: "营业成本", + type: "float" + }), + a(r, "incomeProfitAmt", { + name: "营业利润金额", + type: "float" + }), + a(r, "incomeProfitRate", { + name: "营业利润率", + type: "percent" + }), + a(r, "cashInflowsAmt", { + name: "现金流入金额", + type: "float" + }), + a(r, "cashOutFlowsAmt", { + name: "现金流出金额", + type: "float" + }), + a(r, "cashflowsNet", { + name: "现金流量净额", + type: "float" + }), + a(r, "unReceiptPayAmt", { + name: "未确认收货支付金额", + type: "float" + }), + a(r, "revenueCnt", { + name: "营业收入金额", + type: "float" + }), + a(r, "costCnt", { + name: "营业成本金额", + type: "float" + }), + a(r, "profitCnt", { + name: "营业利润金额", + type: "float" + }), + a(r, "profitRate", { + name: "营业利润率", + type: "percent" + }), + a(r, "cashInFlowAmount", { + name: "现金流入金额", + type: "float" + }), + a(r, "cashOutFlowAmount", { + name: "现金流出金额", + type: "float" + }), + a(r, "cashNetAmount", { + name: "现金流量净额", + type: "float" + }), + a(r, "paylosAmt", { + name: "流失金额", + type: "float" + }), + a(r, "paylosAmtIndex", { + name: "流失指数", + type: "int" + }), + a(r, "paylosByrCnt", { + name: "流失人数", + type: "int" + }), + a(r, "paylosByrCntIndex", { + name: "流失人气", + type: "int" + }), + a(r, "paylosCartByrCnt", { + name: "加购后流失人数", + type: "int" + }), + a(r, "paylosCartUnByrCnt", { + name: "加购后跳失人数", + type: "int" + }), + a(r, "paylosCltByrCnt", { + name: "收藏后流失人数", + type: "int" + }), + a(r, "paylosCltUnByrCnt", { + name: "收藏后跳失人数", + type: "int" + }), + a(r, "paylosItmCnt", { + name: "引起流失的商品数", + type: "int" + }), + a(r, "paylosShopCnt", { + name: "引起流失的店铺数", + type: "int" + }), + a(r, "paylosSlrCnt", { + name: "引起本店流失店铺数", + type: "int" + }), + a(r, "paylosUnUv", { + name: "直接跳失人数", + type: "int" + }), + a(r, "paylossRate", { + name: "流失率", + type: "percent" + }), + a(r, "payAmtIndex", { + name: "交易指数", + type: "int" + }), + a(r, "payAmtCycleCrc", { + name: "交易较上期", + type: "percent" + }), + a(r, "uvIndex", { + name: "流量指数", + type: "int" + }), + a(r, "uvCycleCrc", { + name: "流量较上期", + type: "percent" + }), + a(r, "avgClkRate", { + name: "竞品平均点击率", + type: "percent" + }), + a(r, "avgImps", { + name: "竞品平均曝光量", + type: "int" + }), + a(r, "avgSeCartByrCnt", { + name: "竞品平均搜索引导加购人数", + type: "int" + }), + a(r, "avgSePayByrCnt", { + name: "竞品平均搜索引导支付买家数", + type: "int" + }), + a(r, "avgSePayRate", { + name: "竞品平均搜索引导支付转化率", + type: "percent" + }), + a(r, "avgSeUv", { + name: "竞品平均搜索引导访客数", + type: "int" + }), + a(r, "clkRate", { + name: "点击率", + type: "percent" + }), + a(r, "itmSeCnt", { + name: "搜索竞争商品数", + type: "int" + }), + a(r, "seCartByrCnt", { + name: "搜索引导加购人数", + type: "int" + }), + a(r, "imps", { + name: "曝光量", + type: "int" + }), + a(r, "seImps", { + name: "搜索曝光量", + type: "int" + }), + a(r, "sePayByrCnt", { + name: "搜索引导支付买家数", + type: "int" + }), + a(r, "sePayRate", { + name: "搜索引导支付转化率", + type: "percent" + }), + a(r, "seUv", { + name: "搜索引导访客数", + type: "int" + }), + a(r, "seCartIndex", { + name: "搜索加购指数", + type: "int" + }), + a(r, "seCltIndex", { + name: "搜索收藏指数", + type: "int" + }), + a(r, "sePayAmtIndex", { + name: "搜索交易指数", + type: "int" + }), + a(r, "seUvIndex", { + name: "搜索人气", + type: "int" + }), + a(r, "seUvCycleCrc", { + name: "搜索较上期", + type: "percent" + }), + a(r, "seCpIndex", { + name: "搜索竞争指数", + type: "float" + }), + a(r, "fstOnsItmCnt", { + name: "上新商品数", + type: "int" + }), + a(r, "prePayAmtIndex", { + name: "预售定金指数", + type: "int" + }), + a(r, "prePayItmCnt", { + name: "预售定金商品件数", + type: "int" + }), + a(r, "cartByrCnt", { + name: "加购人数", + type: "int" + }), + a(r, "cltByrCnt", { + name: "商品收藏人数", + type: "int" + }), + a(r, "seCltByrCnt", { + name: "搜索引导收藏人数", + type: "int" + }), + a(r, "sePayAmt", { + name: "搜索引导支付金额", + type: "float" + }), + a(r, "cartIndex", { + name: "加购人气", + type: "int" + }), + a(r, "cartByrCntCycleCrc", { + name: "加购较上期", + type: "percent" + }), + a(r, "cltIndex", { + name: "收藏人气", + type: "int" + }), + a(r, "cltByrCntCycleCrc", { + name: "收藏较上期", + type: "percent" + }), + a(r, "rivalVstSlrCnt", { + name: "有访客的竞店数", + type: "int" + }), + a(r, "rivalUv", { + name: "竞店平均访客数", + type: "int" + }), + a(r, "rivalAvgPayOrdSlrCnt", { + name: "有成交的竞店数", + type: "int" + }), + a(r, "rivalPayRate", { + name: "竞店平均支付转化率", + type: "percent" + }), + a(r, "selfUv", { + name: "本店访客数", + type: "int" + }), + a(r, "selfPayRate", { + name: "本店支付转化率", + type: "percent" + }), + a(r, "uvPotentialIndex", { + name: "访客潜力指数", + type: "int" + }), + a(r, "payRatePotentialIndex", { + name: "转化率潜力指数", + type: "int" + }), + a(r, "vstPayByrCnt", { + name: "浏览且购买人数", + type: "int" + }), + a(r, "unPayCateLosByrCnt", { + name: "非购买类目流失人数", + type: "int" + }), + a(r, "unLosByrCnt", { + name: "无流失行为买家数", + type: "int" + }), + a(r, "paylosUv", { + name: "未在本店购买人数", + type: "int" + }), + a(r, "unPayCartCnt", { + name: "有加购人数", + type: "int" + }), + a(r, "paylosCltCnt", { + name: "有收藏人数", + type: "int" + }), + a(r, "paylosUnByrCnt", { + name: "未收藏加购流失人数", + type: "int" + }), + a(r, "paylosCartUnUv", { + name: "加购后直接跳失人数", + type: "int" + }), + a(r, "paylosCltUnUv", { + name: "收藏后直接跳失人数", + type: "int" + }), + a(r, "selfShopUv", { + name: "本店访客数", + type: "int" + }), + a(r, "selfShopUvIndex", { + name: "本店流量指数", + type: "int" + }), + a(r, "selfShopUvRatio", { + name: "本店访客数占比", + type: "percent" + }), + a(r, "selfShopPayAmt", { + name: "本店支付金额", + type: "float" + }), + a(r, "selfShopPayAmtIndex", { + name: "本店交易指数", + type: "int" + }), + a(r, "selfShopSeUvIndex", { + name: "本店搜索人气", + type: "int" + }), + a(r, "selfShopCltIndex", { + name: "本店收藏人气", + type: "int" + }), + a(r, "selfShopCartIndex", { + name: "本店加购人气", + type: "int" + }), + a(r, "selfShopFstOnsItmCnt", { + name: "本店上新商品数", + type: "int" + }), + a(r, "selfShopPrePayAmtIndex", { + name: "本店预售定金指数", + type: "int" + }), + a(r, "selfShopPrePayItmCnt", { + name: "本店预售定金商品件数", + type: "int" + }), + a(r, "rival1ShopUv", { + name: "竞店1访客数", + type: "int" + }), + a(r, "rival1ShopUvIndex", { + name: "竞店1流量指数", + type: "int" + }), + a(r, "rival1ShopUvRatio", { + name: "竞店1访客数占比", + type: "percent" + }), + a(r, "rival1ShopPayAmt", { + name: "竞店1支付金额", + type: "float" + }), + a(r, "rival1ShopPayAmtIndex", { + name: "竞店1交易指数", + type: "int" + }), + a(r, "rival1ShopSeUvIndex", { + name: "竞店1搜索人气", + type: "int" + }), + a(r, "rival1ShopCltIndex", { + name: "竞店1收藏人气", + type: "int" + }), + a(r, "rival1ShopCartIndex", { + name: "竞店1加购人气", + type: "int" + }), + a(r, "rival1ShopFstOnsItmCnt", { + name: "竞店1上新商品数", + type: "int" + }), + a(r, "rival1ShopPrePayAmtIndex", { + name: "竞店1预售定金指数", + type: "int" + }), + a(r, "rival1ShopPrePayItmCnt", { + name: "竞店1预售定金商品件数", + type: "int" + }), + a(r, "rival2ShopUv", { + name: "竞店2访客数", + type: "int" + }), + a(r, "rival2ShopUvIndex", { + name: "竞店2流量指数", + type: "int" + }), + a(r, "rival2ShopUvRatio", { + name: "竞店2访客数占比", + type: "percent" + }), + a(r, "rival2ShopPayAmt", { + name: "竞店2支付金额", + type: "float" + }), + a(r, "rival2ShopPayAmtIndex", { + name: "竞店2交易指数", + type: "int" + }), + a(r, "rival2ShopSeUvIndex", { + name: "竞店2搜索人气", + type: "int" + }), + a(r, "rival2ShopCltIndex", { + name: "竞店2收藏人气", + type: "int" + }), + a(r, "rival2ShopCartIndex", { + name: "竞店2加购人气", + type: "int" + }), + a(r, "rival2ShopFstOnsItmCnt", { + name: "竞店2上新商品数", + type: "int" + }), + a(r, "rival2ShopPrePayAmtIndex", { + name: "竞店2预售定金指数", + type: "int" + }), + a(r, "rival2ShopPrePayItmCnt", { + name: "竞店2预售定金商品件数", + type: "int" + }), + a(r, "selfItemUv", { + name: "本店商品访客数", + type: "int" + }), + a(r, "selfItemUvIndex", { + name: "本店商品流量指数", + type: "int" + }), + a(r, "selfItemUvRatio", { + name: "本店商品访客数占比", + type: "percent" + }), + a(r, "selfItemPayAmt", { + name: "本店商品支付金额", + type: "float" + }), + a(r, "selfItemPayAmtIndex", { + name: "本店商品交易指数", + type: "int" + }), + a(r, "selfItemPayItemCnt", { + name: "本店商品支付件数", + type: "int" + }), + a(r, "selfItemSeUvIndex", { + name: "本店商品搜索人气", + type: "int" + }), + a(r, "selfItemCltIndex", { + name: "本店商品收藏人气", + type: "int" + }), + a(r, "selfItemCartIndex", { + name: "本店商品加购人气", + type: "int" + }), + a(r, "rival1ItemUv", { + name: "竞品1访客数", + type: "int" + }), + a(r, "rival1ItemUvIndex", { + name: "竞品1流量指数", + type: "int" + }), + a(r, "rival1ItemUvRatio", { + name: "竞品1访客数占比", + type: "percent" + }), + a(r, "rival1ItemPayAmt", { + name: "竞品1支付金额", + type: "float" + }), + a(r, "rival1ItemPayAmtIndex", { + name: "竞品1交易指数", + type: "int" + }), + a(r, "rival1ItemPayItemCnt", { + name: "竞品1支付商品件数", + type: "int" + }), + a(r, "rival1ItemSeUvIndex", { + name: "竞品1搜索人气", + type: "int" + }), + a(r, "rival1ItemCltIndex", { + name: "竞品1收藏人气", + type: "int" + }), + a(r, "rival1ItemCartIndex", { + name: "竞品1加购人气", + type: "int" + }), + a(r, "rival2ItemUv", { + name: "竞品2访客数", + type: "int" + }), + a(r, "rival2ItemUvIndex", { + name: "竞品2流量指数", + type: "int" + }), + a(r, "rival2ItemUvRatio", { + name: "竞品2访客数占比", + type: "percent" + }), + a(r, "rival2ItemPayAmt", { + name: "竞品2支付金额", + type: "float" + }), + a(r, "rival2ItemPayAmtIndex", { + name: "竞品2交易指数", + type: "int" + }), + a(r, "rival2ItemPayItemCnt", { + name: "竞品2支付商品件数", + type: "int" + }), + a(r, "rival2ItemSeUvIndex", { + name: "竞品2搜索人气", + type: "int" + }), + a(r, "rival2ItemCltIndex", { + name: "竞品2收藏人气", + type: "int" + }), + a(r, "rival2ItemCartIndex", { + name: "竞品2加购人气", + type: "int" + }), + a(r, "favBuyerCnt", { + name: "收藏人数", + type: "int" + }), + a(r, "orderRate", { + name: "下单转化率", + type: "percent" + }), + a(r, "avgStayTime", { + name: "平均停留时长", + type: "second" + }), + a(r, "orderAmt", { + name: "下单金额", + type: "float" + }), + a(r, "orderBuyerCnt", { + name: "下单买家数", + type: "int" + }), + a(r, "impsCnt", { + name: "曝光数", + type: "int" + }), + a(r, "shopCltByrCnt", { + name: "关注店铺买家数", + type: "int" + }), + a(r, "actItmPayAmt", { + name: "活动商品支付金额", + type: "float" + }), + a(r, "actItmPayByrCnt", { + name: "活动商品支付买家数", + type: "int" + }), + a(r, "actItmPayCnt", { + name: "活动商品支付件数", + type: "int" + }), + a(r, "actItmUv", { + name: "活动商品访客数", + type: "int" + }), + a(r, "activityEnd", { + name: "活动结束时间", + type: "string" + }), + a(r, "activityStart", { + name: "活动起始时间", + type: "string" + }), + a(r, "activityType", { + name: "活动类型", + type: "string" + }), + a(r, "payCnt", { + name: "支付件数", + type: "int", + useHumanNumber: !0 + }), + a(r, "newPayAmt", { + name: "新买家支付金额", + type: "float" + }), + a(r, "newPayByrCnt", { + name: "支付新买家数", + type: "int" + }), + a(r, "preheatCartByrCnt", { + name: "预热加购人数", + type: "int" + }), + a(r, "preheatCartItmCnt", { + name: "预热加购件数", + type: "int" + }), + a(r, "preheatCartTurnCnt", { + name: "预热加购转化人数", + type: "int" + }), + a(r, "preheatCartCntRate", { + name: "预热加购人数转化率", + type: "percent" + }), + a(r, "preheatCltByrCnt", { + name: "预热收藏人数", + type: "int" + }), + a(r, "preheatCltItmCnt", { + name: "预热收藏次数", + type: "int" + }), + a(r, "preheatCltTurnCnt", { + name: "预热收藏转化人数", + type: "int" + }), + a(r, "preheatCltCntRate", { + name: "预热收藏人数转化率", + type: "percent" + }), + a(r, "preheatEnd", { + name: "预热结束时间", + type: "string" + }), + a(r, "preheatAmtTurnRatio", { + name: "预热金额转化占比", + type: "percent" + }), + a(r, "preheatStart", { + name: "预热起始时间", + type: "string" + }), + a(r, "preheatUv", { + name: "预热访客数", + type: "int" + }), + r); + function m(e) { + return h[e] && h[e].name || "-" + } + function b(e) { + return h[e] && h[e].type || "-" + } + function y(e) { + return h[e] && h[e].useHumanNumber || !1 + } + function g(e) { + var t = e ? e.split("_") : null; + return t ? (u[t[0]] ? u[t[0]] : "") + (h[t[1]] ? h[t[1]].name : "") : "-" + } + var v = { + today: "实时", + recent1: "最近1天", + recent7: "最近7天", + recent28: "最近28天", + recent30: "最近30天", + allDays: "全部时间", + day: "日", + week: "周", + month: "月", + quarter: "季度", + year: "年", + custom: "自定义", + range: "自定义日", + rangeWeek: "自定义周", + rangeMonth: "自定义月" + }; + + +### 获取中文验证码 + http://www2.soopat.com/Account/ValidateImage?tdsourcetag=s_pcqq_aiomsg + +### 支付宝验证码 + https://authet15.alipay.com/login/imgcode.htm?sessionID=103e1df479c64f728177d0fd4f30827a&t=0.8778549192371301 + +## 支付宝API + 1. https://securitycore.alipay.com/barcode/barcodeProcessStatus.json?securityId=web%7Cauthcenter_qrcode_login%7Cf2e9a993-b470-472e-91e6-83534480a6a0RZ25&_callback=light.request._callbacks.callback1 + - 判断扫码是否登录