首页 > 大数据 > 数据分析 > 京东通过SKU获取商品详情的完整指南
京东通过SKU获取商品详情需通过 京东开放平台API实现,流程分为以下步骤:
AppKey和
AppSecret,用于API调用身份验证。根据需求选择以下接口:
jd.union.open.goods.query
json{"method": "jd.union.open.goods.query","app_key": "YOUR_APP_KEY","param_json": {"skuIds": ["SKU_ID"]}}jd.union.open.goods.skus.get
json{"method": "jd.union.open.goods.skus.get","app_key": "YOUR_APP_KEY","param_json": {"skuIds": ["SKU_ID"]}}app_key:应用密钥。method:接口名称(如
jd.union.open.goods.query)。timestamp:请求时间戳(格式
YYYY-MM-DD HH:mm:ss)。sign:签名(生成方法见下文)。sign)。AppSecret + 参数字符串 +
AppSecret。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()发送请求:
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']}")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')}")
通过以上步骤,可高效、合法地通过SKU获取京东商品详情。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046834/viewspace-3090930/ ,如需转载,请注明出处,否则将追究法律责任。