Python京东商品详情API接口采集概览

前言

京东开放平台提供了多种API接口用于获取商品详情信息,以下是主要的API接口概述及Python采集示例。

一、主要商品详情API接口

1. 商品基础信息接口

接口名称jd.union.open.goods.query
功能: 获取商品标题、价格、图片、库存等基础信息

2. 商品详情接口

接口名称jd.union.open.goods.detail.query
功能: 获取商品详细描述、规格参数、售后政策等丰富信息

3. 商品SKU接口

接口名称jd.union.open.goods.skus.query
功能: 获取商品的所有SKU信息(颜色、尺寸等变体)

二、Python采集示例代码

1. 准备工作

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()

2. 获取商品基础信息

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
# 使用示例
api = JDAPI('your_app_key', 'your_app_secret')
goods_info = get_goods_info(api, '100012345678')
print(goods_info)

3. 获取商品详细信息

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_detail = get_goods_detail(api, '100012345678')
print(goods_detail)

4. 获取商品SKU信息

def get_goods_skus(api, sku_id):
params = {
'sku_id': sku_id,
'fields': 'sku_id,name,price,image_path,color,size,stock_state'
}
result = api.call_api('jd.union.open.goods.skus.query', params)
return result
# 使用示例
goods_skus = get_goods_skus(api, '100012345678')
print(goods_skus)

三、返回数据示例

1. 商品基础信息响应

{
"code": 200,
"message": "success",
"data": {
"goods_response": {
"sku_id": "100012345678",
"name": "华为Mate 50 Pro 5G手机",
"price": 5999.00,
"image_path": "https://img10.360buyimg.com/n1/s450x450_jfs/t1/123456/78/12345/123456/12345678/1234567890abcdef.jpg",
"stock_state": 1
}
}
}

2. 商品详细信息响应

{
"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"]
}
}
}
}

作者:ID_18007905473

物联沃分享整理
物联沃-IOTWORD物联网 » Python京东商品详情API接口采集概览

发表回复