ITPub博客

首页 > 大数据 > 数据分析 > 利用API接口合规获取淘宝店铺所有商品实战案例(2025年最新版)

利用API接口合规获取淘宝店铺所有商品实战案例(2025年最新版)

原创 数据分析 作者:OneLafite 时间:2025-09-09 10:35:51 0 删除 编辑

一、核心接口与权限准备

  1. 关键接口
    • taobao.items.onsale.get:获取店铺在售商品列表(含价格、库存、销量等核心字段)。
    • taobao.items.inventory.get:获取仓库中商品(未上架商品)。
    • taobao.shop.get:通过店铺昵称获取店铺ID(需先调用此接口获取 seller_id)。
  2. 权限申请流程
    • 注册开发者账号:访问淘宝开放平台,完成企业实名认证(个人开发者需芝麻信用650分以上)。
    • 创建应用:选择“自用型”应用,申请“电商基础API”权限包(含商品、订单等接口)。
    • 获取三元组:
      • app_key:应用唯一标识。
      • app_secret:加密密钥(需保密)。
      • session_key:通过OAuth2.0授权获取(需店铺管理员扫码授权,有效期30天)。

二、API调用实战步骤

1. 获取店铺ID
pythonimport requestsimport timeimport hashlibdef get_shop_id(app_key, app_secret, seller_nick):method = "taobao.shop.get"params = {"app_key": app_key,"method": method,"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),"format": "json","v": "2.0","sign_method": "hmac","seller_nick": seller_nick,"fields": "seller_id"  # 仅需返回店铺ID}# 生成HMAC_MD5签名sorted_params = sorted(params.items(), key=lambda x: x[0])raw_str = ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secretsign = hashlib.md5(raw_str.encode()).hexdigest().upper()params["sign"] = signresponse = requests.post("https://eco.taobao.com/router/rest",data=params,headers={"Content-Type": "application/x-www-form-urlencoded"})return response.json()["shop_get_response"]["shop"]["seller_id"]# 示例调用seller_nick = "示例店铺"  # 替换为目标店铺昵称app_key = "你的AppKey"app_secret = "你的AppSecret"shop_id = get_shop_id(app_key, app_secret, seller_nick)print(f"店铺ID: {shop_id}")
2. 分页获取在售商品
pythondef get_shop_items(app_key, app_secret, session_key, seller_id, page_no/=1, page_size=100):method = "taobao.items.onsale.get"params = {"app_key": app_key,"method": method,"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),"format": "json","v": "2.0","sign_method": "hmac","session": session_key,  # 店铺授权token"seller_id": seller_id,"page_no": page_no,"page_size": page_size,"fields": "num_iid,title,price,pic_url,quantity,modified"  # 自定义返回字段}# 生成签名(同上)sorted_params = sorted(params.items(), key=lambda x: x[0])raw_str = ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secretsign = hashlib.md5(raw_str.encode()).hexdigest().upper()params["sign"] = signresponse = requests.post("https://eco.taobao.com/router/rest",data=params,headers={"Content-Type": "application/x-www-form-urlencoded"})return response.json()# 示例调用session_key = "你的SessionKey"  # 通过OAuth2.0获取items_data = get_shop_items(app_key, app_secret, session_key, shop_id)print(f"第1页商品数: {len(items_data['items_onsale_get_response']['items']['item'])}")
3. 自动翻页获取全部商品
pythondef get_all_shop_items(app_key, app_secret, session_key, seller_id, page_size=100):all_items = []page_no = 1while True:items_data = get_shop_items(app_key, app_secret, session_key, seller_id, page_no, page_size)if "error_response" in items_data:print(f"错误: {items_data['error_response']['msg']}")breakitems = items_data["items_onsale_get_response"]["items"]["item"]if not items:breakall_items.extend(items)total_results = items_data["items_onsale_get_response"]["total_results"]print(f"已获取 {len(all_items)}/{total_results} 个商品")if len(all_items) >= total_results:breakpage_no += 1time.sleep(1)  # 避免触发限流return all_items# 示例调用all_items = get_all_shop_items(app_key, app_secret, session_key, shop_id)with open("shop_items.json", "w", encoding="utf-8") as f:import jsonjson.dump(all_items, f, ensure_ascii=False, indent=2)print("商品数据已保存至 shop_items.json")

三、关键注意事项

  1. 签名算法
    • 淘宝API要求使用 HMAC_MD5或 MD5签名,参数需按ASCII码升序排列,时间戳格式为 YYYY-MM-DD HH:MM:SS。
  2. 分页与限流
    • 单页最多返回200条商品,建议设置 page_size=100以平衡效率与稳定性。
    • 每次请求间隔≥1秒,避免触发QPS限制(默认50次/秒)。
  3. 错误处理
    • 权限不足:检查 session_key是否过期或API未授权。
    • 签名失败:确认参数排序和签名算法正确。
    • 网络超时:设置重试机制(如最多重试3次)。
  4. 数据存储
    • 将商品ID、标题、价格等核心字段存入数据库(如MySQL),图片URL可单独存储至对象存储(如OSS)。

四、合规性要求

  1. 禁止爬虫:淘宝明确禁止绕过API直接爬取网页数据,违规可能导致IP封禁或法律诉讼。
  2. 数据使用限制:不得将商品数据用于转售或未经授权的竞品分析。
  3. 隐私保护:买家昵称、收货地址等敏感字段需脱敏处理。

五、扩展应用场景

  1. 竞品监控:定时抓取商品价格、销量,分析对手策略。
  2. 选品系统:结合关键词API筛选高销量、低差评商品。
  3. 库存预警:实时同步SKU库存,低于阈值时自动通知。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3095228/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
专业研发电商平台API开放接口,搭建独立站系统,反向海淘代购系统十年+,https://o0b.cn/lafite。

注册时间:2025-06-20

  • 博文量
    231
  • 访问量
    258542