前言
一、接口概述
京东商品详情API接口是京东开放平台为开发者提供的服务,用于获取京东平台上商品的详细信息。通过调用该接口,开发者可以获取商品的名称、价格、库存、图片、规格参数、用户评价等结构化数据,适用于电商应用、价格监控、数据分析等场景。
二、接口特点
-
数据全面性
接口返回的数据涵盖多个维度,包括:- 商品基本信息:名称、品牌、型号、分类等。
- 价格信息:当前售价、原价、促销价、折扣信息等。
- 库存信息:库存数量、库存状态等。
- 图片信息:主图、详情图、视频链接等。
- 规格参数:颜色、尺寸、重量等。
- 售后服务:退换货政策、保修期等。
- 用户评价:评价总数、好评率、示例评价等。
-
实时性
接口数据与京东平台实时同步,确保价格、库存等信息的及时性。 -
稳定性
京东作为大型电商平台,API接口经过严格测试,支持高并发访问,适合电商大促等场景。 -
安全性
接口采用签名验证机制(如MD5加密),确保请求的合法性,防止数据泄露。
三、Python采集示例代码
以下是一个使用Python调用京东商品详情API的示例代码:
import requests | |
import hashlib | |
import time | |
class JDAPI: | |
def __init__(self, app_key, app_secret): | |
self.app_key = app_key | |
self.app_secret = app_secret | |
self.base_url = "https://api.jd.com/routerjson" | |
def _generate_sign(self, params): | |
# 参数排序并拼接 | |
sorted_params = sorted(params.items(), key=lambda x: x[0]) | |
query_string = '&'.join([f"{k}={v}" for k, v in sorted_params]) + self.app_secret | |
# MD5加密生成签名 | |
return hashlib.md5(query_string.encode('utf-8')).hexdigest().upper() | |
def call_api(self, method, params): | |
# 公共参数 | |
common_params = { | |
'app_key': self.app_key, | |
'method': method, | |
'timestamp': str(int(time.time())), | |
'format': 'json', | |
'v': '2.0', | |
'sign_method': 'md5' | |
} | |
# 合并参数 | |
all_params = {**common_params, **params} | |
# 生成签名 | |
all_params['sign'] = self._generate_sign(all_params) | |
# 发送请求 | |
response = requests.get(self.base_url, params=all_params) | |
return response.json() | |
# 使用示例 | |
api = JDAPI('your_app_key', 'your_app_secret') | |
# 获取商品基础信息 | |
def get_goods_info(api, sku_id): | |
params = { | |
'sku_ids': sku_id, # 商品ID,多个用逗号分隔 | |
'fields': 'sku_id,name,price,image_path,stock_state' # 需要返回的字段 | |
} | |
result = api.call_api('jd.union.open.goods.query', params) | |
return result | |
# 获取商品详细信息 | |
def get_goods_detail(api, sku_id): | |
params = { | |
'sku_id': sku_id, | |
'fields': 'sku_id,name,price,image_path,stock_state,description,after_service,spec_info' | |
} | |
result = api.call_api('jd.union.open.goods.detail.query', params) | |
return result | |
# 调用接口 | |
goods_info = get_goods_info(api, '100012345678') | |
goods_detail = get_goods_detail(api, '100012345678') | |
print("商品基础信息:", goods_info) | |
print("商品详细信息:", goods_detail) |
四、JSON格式数据参考
以下是一个典型的京东商品详情API返回的JSON数据示例:
{ | |
"code": 200, | |
"message": "success", | |
"data": { | |
"goods_detail_response": { | |
"sku_id": "100012345678", | |
"name": "华为Mate 50 Pro 5G手机", | |
"price": 5999.00, | |
"description": "<p>华为Mate 50 Pro 5G手机,采用6.74英寸OLED屏幕...</p>", | |
"after_service": "全国联保,享受三包服务", | |
"spec_info": { | |
"颜色": ["曜金黑", "冰霜银", "流光紫"], | |
"内存": ["8GB+128GB", "8GB+256GB", "12GB+512GB"] | |
}, | |
"images": [ | |
"https://img10.360buyimg.com/n1/s450x450_jfs/t1/123456/78/12345/123456/12345678/1234567890abcdef.jpg" | |
], | |
"evaluation": { | |
"total_reviews": 1000, | |
"positive_rate": "95%" | |
} | |
} | |
} | |
} |
五、关键字段说明
-
code
和message
接口调用状态码(200表示成功)及错误信息。 -
goods_detail_response
包含商品详情的核心数据。 -
sku_id
商品唯一标识符。 -
name
商品名称。 -
price
商品当前价格。 -
description
商品详细描述。 -
after_service
售后服务信息。 -
spec_info
商品规格参数。 -
images
商品图片列表。 -
evaluation
用户评价信息。