ITPub博客

首页 > 大数据 > 数据分析 > 京东通过SKU获取商品详情的完整指南

京东通过SKU获取商品详情的完整指南

原创 数据分析 作者:OneLafite 时间:2025-07-12 17:45:01 0 删除 编辑

一、核心流程概述

京东通过SKU获取商品详情需通过 京东开放平台API实现,流程分为以下步骤:

  1. 注册与权限申请
  2. 选择合适的API接口
  3. 构造请求参数与签名
  4. 发送请求并解析响应

二、详细步骤说明

1. 注册与权限申请

  • 注册账号:访问京东开放平台,完成企业或个人开发者注册。
  • 创建应用:登录后进入“我的应用”,填写应用名称、描述等信息,提交审核。
  • 获取密钥:审核通过后获得 AppKey和 AppSecret,用于API调用身份验证。

2. 选择API接口

根据需求选择以下接口:

  • 商品详情接口: jd.union.open.goods.query
    • 功能:获取商品基础信息(名称、价格、库存等)。
    • 请求参数示例:
      json{"method": "jd.union.open.goods.query","app_key": "YOUR_APP_KEY","param_json": {"skuIds": ["SKU_ID"]}}
  • SKU专项接口: jd.union.open.goods.skus.get
    • 功能:直接获取SKU的规格、价格、库存等详细数据。
    • 请求参数示例:
      json{"method": "jd.union.open.goods.skus.get","app_key": "YOUR_APP_KEY","param_json": {"skuIds": ["SKU_ID"]}}

3. 构造请求参数与签名

  • 必填参数:
    • app_key:应用密钥。
    • method:接口名称(如 jd.union.open.goods.query)。
    • timestamp:请求时间戳(格式 YYYY-MM-DD HH:mm:ss)。
    • sign:签名(生成方法见下文)。
  • 签名生成步骤:
    1. 按字典序排序所有参数(除 sign)。
    2. 拼接参数键值对为字符串。
    3. 组合 AppSecret + 参数字符串 +  AppSecret。
    4. 使用MD5加密并转为大写。
    pythonimport hashlibdef generate_sign(params, app_secret):sorted_params = sorted(params.items())sign_str = app_secret + ''.join(f"{k}{v}" for k, v in sorted_params) + app_secretreturn hashlib.md5(sign_str.encode()).hexdigest().upper()

4. 发送请求与解析响应

  • 发送请求:

    pythonimport requestsurl = "https://api.jd.com/routerjson"response = requests.get(url, params=params)data = response.json()
  • 响应解析:

    • 成功时返回字段示例:
      json{"code": "0","result": {"skuId": "123456","name": "商品名称","price": "99.90","stock": 100}}
    • 错误码处理(如 1001表示参数缺失):
      pythonif data['code'] != '0':print(f"错误码: {data['code']}, 描述: {data['msg']}")

三、代码示例(Python)

pythonimport requestsimport timeimport hashlibimport jsonclass JDProductAPI:def __init__(self, app_key, app_secret):self.app_key = app_keyself.app_secret = app_secretself.url = "https://api.jd.com/routerjson"def _sign(self, params):sorted_params = sorted(params.items(), key=lambda x: x[0])sign_str = self.app_secretfor k, v in sorted_params:sign_str += f"{k}{v}"sign_str += self.app_secretreturn hashlib.md5(sign_str.encode()).hexdigest().upper()def get_product_detail(self, sku_id):params = {"method": "jd.union.open.goods.query","app_key": self.app_key,"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),"format": "json","v": "1.0","param_json": json.dumps({"skuIds": [sku_id]})}params["sign"] = self._sign(params)response = requests.get(self.url, params=params)return response.json()# 使用示例if __name__ == "__main__":app_key = "YOUR_APP_KEY"app_secret = "YOUR_APP_SECRET"sku_id = "100032608854"jd_api = JDProductAPI(app_key, app_secret)result = jd_api.get_product_detail(sku_id)if result.get("code") == "0":product = result["result"]["wareInfo"]print(f"商品名称: {product['name']}")print(f"价格: ¥{product['price']['p']}")print(f"库存: {product['stock']['s']}件")else:print(f"请求失败: {result.get('msg')}")

四、注意事项

  1. 频率限制:默认QPS为50次/秒,超限需申请提额或采用缓存策略。
  2. 数据实时性:价格和库存数据分钟级更新,适合实时监控场景。
  3. 合规性:禁止爬取非官方接口,务必使用开放平台API。
  4. 错误处理:需捕获HTTP错误和API返回的错误码,实现重试机制。

通过以上步骤,可高效、合法地通过SKU获取京东商品详情。


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

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

注册时间:2025-06-20

  • 博文量
    231
  • 访问量
    258387