一、核心流程概述
京东通过SKU获取商品详情需通过京东开放平台API实现,流程分为以下步骤:
- 注册与权限申请
- 选择合适的API接口
- 构造请求参数与签名
- 发送请求并解析响应
二、详细步骤说明
1. 注册与权限申请
- 注册账号:访问京东开放平台,完成企业或个人开发者注册。
- 创建应用:登录后进入“我的应用”,填写应用名称、描述等信息,提交审核。
- 获取密钥:审核通过后获得
AppKey
和AppSecret
,用于API调用身份验证。
2. 选择API接口
根据需求选择以下接口:
- 商品详情接口:
jd.union.open.goods.query
- SKU专项接口:
jd.union.open.goods.skus.get
3. 构造请求参数与签名
- 必填参数:
- 签名生成步骤:
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 json class JDProductAPI: def __init__(self, app_key, app_secret): self.app_key = app_key self.app_secret = app_secret self.url = "https://api.jd.com/routerjson" def _sign(self, params): sorted_params = sorted(params.items(), key=lambda x: x[0]) sign_str = self.app_secret for k, v in sorted_params: sign_str += f"{k}{v}" sign_str += self.app_secret return 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')}")
四、注意事项
- 频率限制:默认QPS为50次/秒,超限需申请提额或采用缓存策略。
- 数据实时性:价格和库存数据分钟级更新,适合实时监控场景。
- 合规性:禁止爬取非官方接口,务必使用开放平台API。
- 错误处理:需捕获HTTP错误和API返回的错误码,实现重试机制。
通过以上步骤,可高效、合法地通过SKU获取京东商品详情。