def getItemPromotion(item_id, appId=0): d = { 'method': 'taobao.ump.promotion.get', 'format': 'json', 'item_id': item_id } return request(getURL(d, appId)).text
def ver_(): res_twice = request('msg', user, cid=cid) try: cmp_dict(exp_yz, res_twice[0]) return True except Exception as e: return False
def getItemCats(parentId): d = { 'method': 'taobao.itemcats.get', 'format': 'json', 'fields': 'cid,parent_cid,name,is_parent,sort_order', 'parent_cid': parentId, } return request(getURL(d)).text
def getItemProps(cid): d = { 'method': 'taobao.itemprops.get', 'format': 'json', 'fields': 'pid,name,must,multi,prop_values', 'cid': cid, } return request(getURL(d, 1)).text
def getItem(iid): d = { 'method': 'taobao.item.get', 'format': 'json', 'fields': 'detail_url,num_iid,title,nick,type,cid,seller_cids,props,input_pids,input_str,desc,pic_url,num,valid_thru,list_time,delist_time,stuff_status,location,price,post_fee,express_fee,ems_fee,has_discount,freight_payer,has_invoice,has_warranty,has_showcase,modified,increment,approve_status,postage_id,product_id,auction_point,property_alias,item_img,prop_img,sku,video,outer_id,is_virtual', 'num_iid': iid, } return request(getURL(d)).text
def reqTaobaoAPI(params): metadata = {} global APP for i in range(len(APP)): metadata = json.loads(request(getURL(params, i + 1)), encoding='utf-8') if not metadata.has_key('error_response'): break return json.dumps(metadata, encoding='utf-8')
def getUser(nick): d = { 'method': 'taobao.user.get', 'format': 'json', 'fields': 'user_id,uid,nick,sex,buyer_credit,seller_credit,location,created,last_visit,birthday,type,status,alipay_no,alipay_account,alipay_account,email,consumer_protection,alipay_bind', 'nick': nick, } return request(getURL(d)).text
def getUsers(nicks): d = { 'method': 'taobao.users.get', 'format': 'json', 'fields': 'user_id,nick,sex,buyer_credit,seller_credit,location,created,last_visit', 'nicks': nicks, } return request(getURL(d, 1)).text
def getItems(num_iids): d = { 'method': 'taobao.items.list.get', 'format': 'json', 'fields': 'num_iid,props_name,cid,props,pic_url,num,valid_thru,list_time,delist_time,price,is_timing', 'num_iids': num_iids, } return request(getURL(d, 0)).text
def ver_(): res_twice = request('msg', user, cid=cid) logging.debug(res_twice) try: cmp_dict(exp_f_yz, res_twice[0]) return True except Exception as e: logging.debug(e) return False
def getTrades(session_key, fromTsmp, toTsmp): d = { 'method': 'taobao.trades.sold.get', 'format': 'json', 'session': session_key, 'fields': 'seller_nick,buyer_nick,title,type,created,sid,tid,seller_rate,buyer_rate,status,payment,discount_fee,adjust_fee,post_fee,total_fee,pay_time,end_time,modified,consign_time,buyer_obtain_point_fee,point_fee,real_point_fee,received_payment,commission_fee,pic_path,num_iid,num_iid,num,price,cod_fee,cod_status,shipping_type,receiver_name,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,receiver_mobile,receiver_phone,orders.title,orders.pic_path,orders.price,orders.num,orders.iid,orders.num_iid,orders.sku_id,orders.refund_status,orders.status,orders.oid,orders.total_fee,orders.payment,orders.discount_fee,orders.adjust_fee,orders.sku_properties_name,orders.item_meal_name,orders.buyer_rate,orders.seller_rate,orders.outer_iid,orders.outer_sku_id,orders.refund_id,orders.seller_type', 'start_created': fromTsmp, 'end_created': toTsmp, } return request(getURL(d, 2)).text
def ver_(): if exp_f == 1: exp_f_yz = {'code': 203, 'status': False, 'message': '抱歉,您已被禁言!如有疑问,请咨询客服。'} else: exp_f_yz = {'code': 200} res_twice = request('msg', user, cid=cid) logging.debug(res_twice) try: cmp_dict(exp_f_yz, res_twice[0]) return True except Exception as e: logging.debug(e) return False
def getZhitongcheResult(keyword, encoding='utf-8', page=1, reqinterval=0.2): timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) q = repr(keyword.decode(encoding).encode('GBK')).replace('\\x', '%').upper()[1:-1] ip = getMyIpInfo()['data']['ip'] domain = \ 'http://tmatch.simba.taobao.com/?name=tbuad&catid=&pid=420434_1006,420435_1006&count=5&rct=8&o=j&keyword=%s&offset=%d&ip=%s&frontcatid=&type=0&refpid=&propertyid=&lid=&gprice=&loc=&sort=&q2cused=0&sbid=6&ismall=0&multikeys=1&p4p=__p4p_sidebar__,__p4p_bottom__&t=%d' metadata = [] for pageIndex in range(page): url = domain % (q, 13 * pageIndex, ip, int(time.time() * 1000)) s = request( url, reqinterval=reqinterval, headers={ 'Referer': 'http://s.taobao.com/search?q=%s&style=list&bcoffset=1&sort=sale-desc&s=%d' % (q, 13 * pageIndex), 'Host': 'tmatch.simba.taobao.com' }).text for (i, t) in enumerate(re.findall(r'(\{.+?\})', s, re.S)): try: j = json.loads(t) metadata.append({ # 'key':eval("u'%s'"%(j['REDKEY'][j['REDKEY'].index(';')+1:j['REDKEY'].rindex('&')])).encode('utf-8'), 'ip': ip, 'keyword': keyword, 'rank': i + 1 + 13 * pageIndex, 'itemId': re.findall(r'id\=(\d+)', j['URL' ])[0].encode('utf-8'), 'itemLink': j['URL'].encode('utf-8'), 'itemImg': j['TBGOODSLINK'].encode('utf-8'), 'itemPrompName': eval("u'%s'" % j['TITLE']).encode('utf-8' ), 'itemTitle': eval("u'%s'" % j['ADGTITLE']).encode('utf-8'), 'sellerId': j['SELLERID'].encode('utf-8'), 'wangwang': eval("u'%s'" % j['WANGWANGID']).encode('utf-8' ), 'price': atof(j['GOODSPRICE'].encode('utf-8')) * 1.0 / 100, 'location': eval("u'%s'" % j['LOCATION']).encode('utf-8'), 'volume': j['SELL'].encode('utf-8'), 'key': eval("u'%s'" % j['REDKEY']).encode('utf-8'), 'keys': ','.join([eval("u'%s'" % t) for t in j['REDKEYS' ]]).encode('utf-8'), 'time': timestamp, }) except: pass return metadata
exp_t = {'code': 4000, 'status': True, 'message': '处理成功!'} exp_f1 = {'code': '2018', 'status': False, 'data': [], 'message': '没有权限'} exp_f2 = {'code': '4302', 'status': False, 'message': '参数错误!'} exp_f3 = {'code': '4418', 'status': False, 'message': '您无权对本房间房管进行禁言'} exp_f4 = {'code': '4417', 'status': False, 'message': '您无权对本房间主播进行禁言'} exp_f5 = {'code': '4416', 'status': False, 'message': '您无权对超管进行禁言'} exp_f6 = {'code': '4421', 'status': False, 'message': '已被禁言'} exp_f_yz = {'code': 203, 'message': '抱歉,您已被禁言!如有疑问,请咨询客服。', 'status': False} # 初始化禁言数据 init_gag(users,cid) # 数据准备 # 房管禁言用户 for i in range(3, 8): request('gag', fg[0], cid=cid, uid=users[i]) # 房主禁言用户 for i in range(8, 10): request('gag', fz, cid=cid, uid=users[i]) # 二次验证方法 def ver(user): def ver_(): res_twice = request('msg', user, cid=cid) logging.debug(res_twice) try: cmp_dict(exp_f_yz, res_twice[0]) return True except Exception as e: logging.debug(e) return False
def test_msg_06(self): '''发言间隔''' user = user_ids[4] exp = {'status': False, 'code': 204, 'message': '你发言太快!'} request('msg', user, cid=cid) assert_res(sys._getframe(), 'msg', user, exp, cid=cid)
def getUserRateList(uid, maxCount=4000): domain = \ 'http://rate.taobao.com/member_rate.htm?content=&result=&from=rate&user_id=%s&identity=1&rater=3&direction=1&page=$PAGE$&callback=shop_rate_list' \ % uid page = 1 metadata = [] rateIdDict = {} pageStop = False INFO = { 'uid': None, 'aucNumId': None, 'aucPrice': None, 'aucSku': None, 'aucTitle': None, 'award': None, 'content': None, 'date': None, 'from': None, 'propertiesAvg': None, 'rate': None, 'rateId': None, 'raterType': None, 'tag': None, 'tradeId': None, 'useful': None, 'userAvatar': None, 'userNick': None, 'userId': None, 'validscore': None, 'spuRateuRatting': [{ 'XID': None, 'name': None, 'value': None, 'desc': None, }], } while 1: if pageStop: break url = domain.replace('$PAGE$', str(page)) rateList = None while 1: try: rateList = request(url).text break except: pass if not rateList: break if rateList.find('(') == -1 or rateList.find(')') == -1: break rateList = json.loads(rateList[rateList.index('(') + 1:rateList.rindex(')')], encoding='utf-8') if len(rateList['rateListDetail']) == 0: break for (i, rate) in enumerate(rateList['rateListDetail']): if rateIdDict.has_key(rate['rateId']) or len(metadata) > maxCount: pageStop = True break rateIdDict[rate['rateId']] = 1 metadata.append({ 'uid': uid, 'aucNumId': rate['auction']['aucNumId'], 'aucPrice': rate['auction']['auctionPrice'], 'aucSku': rate['auction']['sku'].encode('utf-8'), 'aucTitle': rate['auction']['title'].encode('utf-8'), 'award': rate['award'].encode('utf-8'), 'content': rate['content'].encode('utf-8'), 'date': rate['date'], 'from': rate['from'], 'propertiesAvg': rate['propertiesAvg'], 'rate': rate['rate'], 'rateId': rate['rateId'], 'raterType': rate['raterType'], 'tag': rate['tag'], 'tradeId': rate['tradeId'], 'useful': rate['useful'], 'userAvatar': rate['user']['avatar'], 'userNick': rate['user']['nick'].encode('utf-8'), 'userId': rate['user']['userId'], 'validscore': rate['validscore'], 'spuRatting': [], }) metadata[-1] = dict( (k, (v.encode('utf-8') if isinstance(v, unicode) else v)) for (k, v) in metadata[-1].items()) for spuRate in rate['spuRatting']: metadata[-1]['spuRatting'].append({ 'XID': spuRate['XID'].encode('utf-8'), 'name': spuRate['name'].encode('utf-8'), 'value': spuRate['value'].encode('utf-8'), 'desc': spuRate['desc'].encode('utf-8'), }) if rateList['maxPage'] == rateList['currentPageNum']: break page += 1 return metadata
def testapi_app_minute(self,switch,testcase,method,uri,header,body,exception): print(testcase) # res = requests.post(url=url,data=json.loads(body),headers=json.loads(header)) res = request(method,uri,header,body) print(res.status_code) self.assertEqual(200,res.status_code,msg=None)
# generate_user('adg', 2, True) # exit() room_data = {'room_number': 152633, 'fg_id': [5149], 'fz_name': 'adg1503058347', 'cid': 119453, 'fz_id': 5148, 'fg_name': ['adg1503058348']} user_data = {'user_names': ['adg1503058354', 'adg1503058355'], 'user_ids': [5150, 5151]} fz = room_data['fz_id'] fg = room_data['fg_id'] cid = room_data['cid'] users = user_data['user_ids'] # 初始化禁言数据 init_gag(user_data, room_data) # exit() # 数据准备 # 用户被超管管禁言 request('admingag', superuid, user_uid=users[1]) # 房主被超管禁言 request('admingag', superuid, user_uid=fz, gag_type=0) exp_t = {'code': 4000, 'status': True, 'message': '处理成功!', 'data': {'title': '取消全平台24小时禁言'}} exp_t2 = {'code': 4000, 'status': True, 'message': '处理成功!', 'data': {'title': '取消全平台禁言'}} exp_f1 = {'code': '4302', 'status': False, 'data': [], 'message': '没有权限'} # 二次验证方法 def ver(user): def ver_(): exp_f_yz = {'code': 200} res_twice = request('msg', user, cid=cid) logging.debug(res_twice) try:
'fz_name': 'gag1503019260', 'room_number': 870041} user_data = {'user_names': ['gag1503019282', 'gag1503019284', 'gag1503019286', 'gag1503019288', 'gag1503019289', 'gag1503019291', 'gag1503019292', 'gag1503019294', 'gag1503019296', 'gag1503019298', 'gag1503019299', 'gag1503019301', 'gag1503019302'], 'user_ids': [5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124]} fz = room_data['fz_id'] fg = room_data['fg_id'] cid = room_data['cid'] users = user_data['user_ids'] # 初始化禁言数据 init_gag(users, cid) # 数据准备 # 房管禁言用户 for i in range(1, 5): request('gag', fg[0], cid=cid, uid=users[i]) # 房主禁言用户 for i in range(5, 8): request('gag', fz, cid=cid, uid=users[i]) # 超管禁言用户 for i in range(8, 11): request('admingag', superuid, cid=cid, uid=users[i]) # 房主禁言房管 for i in range(2, 5): request('gag', fz, cid=cid, uid=fg[i]) # 超管禁言房管 for i in range(5, 8): request('admingag', superuid, cid=cid, user_uid=fg[i]) # 超管禁言房主 request('admingag', superuid, cid=cid, user_uid=fz)
def getItemPromotion(item_id, appId=0): d = {'method': 'taobao.ump.promotion.get', 'format': 'json', 'item_id': item_id} return request(getURL(d, appId)).text
'room_number': 124072, 'fz_name': 'gag1503056804', 'cid': 119452 } user_data = {'user_ids': [5147], 'user_names': ['gag1503056812']} fz = room_data['fz_id'] fg = room_data['fg_id'] cid = room_data['cid'] users = user_data['user_ids'] # 初始化禁言数据 init_gag(users, cid) # 数据准备 # 房管已被房主禁言 request('gag', fz, uid=fg[0]) exp_t = { 'code': 4000, 'status': True, 'message': '处理成功!', 'data': { 'title': '全平台24小时禁言' } } exp_t2 = { 'code': 4000, 'status': True, 'message': '处理成功!', 'data': { 'title': '全平台禁言'
def getUserRateList(uid, maxCount=4000): domain = ( "http://rate.taobao.com/member_rate.htm?content=&result=&from=rate&user_id=%s&identity=1&rater=3&direction=1&page=$PAGE$&callback=shop_rate_list" % uid ) page = 1 metadata = [] rateIdDict = {} pageStop = False INFO = { "uid": None, "aucNumId": None, "aucPrice": None, "aucSku": None, "aucTitle": None, "award": None, "content": None, "date": None, "from": None, "propertiesAvg": None, "rate": None, "rateId": None, "raterType": None, "tag": None, "tradeId": None, "useful": None, "userAvatar": None, "userNick": None, "userId": None, "validscore": None, "spuRateuRatting": [{"XID": None, "name": None, "value": None, "desc": None}], } while 1: if pageStop: break url = domain.replace("$PAGE$", str(page)) rateList = None while 1: try: rateList = request(url).text break except: pass if not rateList: break if rateList.find("(") == -1 or rateList.find(")") == -1: break rateList = json.loads(rateList[rateList.index("(") + 1 : rateList.rindex(")")], encoding="utf-8") if len(rateList["rateListDetail"]) == 0: break for (i, rate) in enumerate(rateList["rateListDetail"]): if rateIdDict.has_key(rate["rateId"]) or len(metadata) > maxCount: pageStop = True break rateIdDict[rate["rateId"]] = 1 metadata.append( { "uid": uid, "aucNumId": rate["auction"]["aucNumId"], "aucPrice": rate["auction"]["auctionPrice"], "aucSku": rate["auction"]["sku"].encode("utf-8"), "aucTitle": rate["auction"]["title"].encode("utf-8"), "award": rate["award"].encode("utf-8"), "content": rate["content"].encode("utf-8"), "date": rate["date"], "from": rate["from"], "propertiesAvg": rate["propertiesAvg"], "rate": rate["rate"], "rateId": rate["rateId"], "raterType": rate["raterType"], "tag": rate["tag"], "tradeId": rate["tradeId"], "useful": rate["useful"], "userAvatar": rate["user"]["avatar"], "userNick": rate["user"]["nick"].encode("utf-8"), "userId": rate["user"]["userId"], "validscore": rate["validscore"], "spuRatting": [], } ) metadata[-1] = dict( (k, (v.encode("utf-8") if isinstance(v, unicode) else v)) for (k, v) in metadata[-1].items() ) for spuRate in rate["spuRatting"]: metadata[-1]["spuRatting"].append( { "XID": spuRate["XID"].encode("utf-8"), "name": spuRate["name"].encode("utf-8"), "value": spuRate["value"].encode("utf-8"), "desc": spuRate["desc"].encode("utf-8"), } ) if rateList["maxPage"] == rateList["currentPageNum"]: break page += 1 return metadata