京东商品搜索API技术实践指南

科创之家 2026-03-20 7397人围观

京东平台提供了强大的商品搜索API接口开发者可通过关键词获取商品列表、价格、销量等核心数据。以下是完整的实践方案:

一、API基础信息

接口地址

https://api.jd.com/routerjson
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

请求方式

POST(需携带签名参数)

认证机制

使用App Key和App Secret生成签名

签名算法

$$ text{sign} = text{md5}(text{appSecret} + text{params} + text{appSecret}) $$

二、核心请求参数

参数名 类型 是否必填 说明
method string API方法名,如:jd.union.open.goods.query
keyword string 搜索关键词(需URL编码)
page_index int 分页页码,默认1
page_size int 每页条数,默认20
sort_name string 排序字段(如:price)

三、响应数据结构示例

{
  "code": 200,
  "data": {
    "total": 1200,
    "goods_list": [
      {
        "skuId": "1000001",
        "name": "华为Mate60 Pro 5G手机",
        "price": 6999.00,
        "commission": 300,
        "comments": 50000,
        "shop_name": "华为官方旗舰店"
      }
    ]
  }
}

四、Python调用示例

import requests
import hashlib
import urllib.parse

def jd_goods_search(keyword, page=1):
    app_key = "YOUR_APP_KEY"
    app_secret = "YOUR_APP_SECRET"
    method = "jd.union.open.goods.query"
    
    # 构造基础参数
    params = {
        "method": method,
        "keyword": urllib.parse.quote(keyword),
        "page_index": page,
        "page_size": 20,
        "sort_name": "price"
    }
    
    # 生成签名
    param_str = "".join([f"{k}{v}" for k,v in sorted(params.items())])
    sign = hashlib.md5((app_secret + param_str + app_secret).encode()).hexdigest()
    params.update({"sign": sign, "app_key": app_key})
    
    # 发送请求
    response = requests.post("https://api.jd.com/routerjson", data=params)
    return response.json() if response.status_code == 200 else None

# 调用示例
result = jd_goods_search("智能手机")
print(result["data"]["goods_list"][0]["name"])  # 输出:华为Mate60 Pro 5G手机
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

五、关键注意事项

关键词编码

必须使用urllib.parse.quote()处理中文关键词,避免乱码

错误码处理

1001:参数缺失 → 检查必填字段

1004:签名错误 → 验证appSecret和加密逻辑

1010:调用频次超限 → 控制请求速率(默认100次/分钟)

数据更新频率

商品价格实时更新,库存数据缓存周期为5分钟

六、应用场景

比价系统开发

竞品监控分析

商品推荐引擎

供应链库存预警

通过合理利用分页参数和排序规则,可高效获取海量商品数据,为电商生态开发提供强大支撑。

审核编辑 黄宇

  • 随机文章
  • 热门文章
  • 热评文章
不容错过
Powered By Z-BlogPHP