首页 > 大数据 > 数据分析 > 如何通过API接口批量获取淘宝商品销量信息
一、前期准备:账号与权限申请
AppKey和
AppSecret,用于接口调用签名。taobao.item.get:通过商品ID获取销量数据。taobao.item.search:按关键词搜索商品并返回销量。taobao.tbk.item.get(可选):淘宝联盟推广商品销量(需签约联盟)。pythonparams = {'method': 'taobao.item.get', # 接口方法名'app_key': '你的AppKey','timestamp': time.strftime('%Y-%m-%d %H:%M:%S'), # 当前时间'format': 'json','v': '2.0','num_iid': '商品ID', # 目标商品ID'fields': 'num_iid,title,volume,sold_quantity' # 指定返回销量字段}AppSecret,MD5加密:
pythondef generate_sign(params, app_secret):sorted_params = sorted(params.items(), key=lambda x: x[0])base_string = app_secret + '&'.join([f"{k}{v}" for k, v in sorted_params]) + app_secretreturn hashlib.md5(base_string.encode()).hexdigest().upper()requests库发送GET请求:
pythonurl = 'https://eco.taobao.com/router/rest'params['sign'] = generate_sign(params, '你的AppSecret')response = requests.get(url, params=params)data = response.json()
json{"item_get_response": {"item": {"num_iid": "商品ID","title": "商品标题","volume": 1500, // 月销量"sold_quantity": 5000 // 总销量}}}taobao.item.search接口,通过
page_no和
page_size参数分页获取数据:
pythonparams = {'method': 'taobao.item.search','q': '关键词','page_no': 1,'page_size': 40,'fields': 'num_iid,title,volume'}pythonclass RateLimiter:def __init__(self, max_calls, per_second):self.queue = deque(maxlen=max_calls)def wait(self):now = time.time()while self.queue and now - self.queue[0] > 1/per_second:self.queue.popleft()time.sleep(max(0, 1/per_second - (time.time() - now)))self.queue.append(now)
AppSecret,避免泄露。taobao.tbk.item.get接口获取推广商品销量。pythonimport hashlibimport timeimport requestsfrom collections import dequeclass TaobaoAPIClient:def __init__(self, app_key, app_secret):self.app_key = app_keyself.app_secret = app_secretself.rate_limiter = RateLimiter(max_calls=2, per_second=2)def generate_sign(self, params):sorted_params = sorted(params.items(), key=lambda x: x[0])base_string = self.app_secret + '&'.join([f"{k}{v}" for k, v in sorted_params]) + self.app_secretreturn hashlib.md5(base_string.encode()).hexdigest().upper()def fetch_item_sales(self, num_iid):self.rate_limiter.wait()params = {'method': 'taobao.item.get','app_key': self.app_key,'timestamp': time.strftime('%Y-%m-%d %H:%M:%S'),'format': 'json','v': '2.0','num_iid': num_iid,'fields': 'num_iid,title,volume,sold_quantity'}params['sign'] = self.generate_sign(params)response = requests.get('https://eco.taobao.com/router/rest', params=params)return response.json()# 使用示例client = TaobaoAPIClient('你的AppKey', '你的AppSecret')data = client.fetch_item_sales('商品ID')print(f"商品标题:{data['item_get_response']['item']['title']}")print(f"月销量:{data['item_get_response']['item']['volume']}")
volume)为近30天数据,非实时更新。通过以上步骤,可合规、高效地批量获取淘宝商品销量数据,适用于竞品分析、价格监控等场景。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3089034/ ,如需转载,请注明出处,否则将追究法律责任。