如何使用京东开放平台API获取店铺所有商品

简介: 本文详解如何通过京东开放平台API(OAuth 2.0认证)批量获取指定店铺全部商品信息:涵盖账号注册、权限申请、签名生成、分页查询(基于total动态计算页数)及Python完整实现,含错误处理与注意事项,助开发者高效集成京东商品数据。(239字)


在电商开发中,整合京东平台数据是常见需求。本文将一步步指导您通过京东开放平台API获取指定店铺的所有商品信息。京东API采用OAuth 2.0认证,支持分页查询,确保数据完整获取。以下是详细实现方案(基于京东开放平台最新文档,实际使用时请参考官方文档确认细节)。

步骤1: 准备工作
注册开发者账号:访问京东开放平台,注册账号并创建应用,获取App Key和App Secret。
权限申请:在控制台申请“商品信息读取”权限,审核通过后获得API调用资格。
工具准备:推荐使用Python语言,安装requests库处理HTTP请求。
步骤2: 确定API接口
京东提供多个商品相关API,核心接口为jingdong.goods.get(获取单个商品)和jingdong.goods.search(搜索商品)。要获取所有商品,需使用搜索接口并添加店铺ID参数:

API端点:https://api.jd.com/routerjson
请求方法:POST
关键参数:
method: 设为jingdong.goods.search
shop_id: 店铺唯一ID(可从商家后台获取)
page_no: 页码(从1开始)
page_size: 每页商品数(建议设为100,京东API上限)
其他参数如access_token(认证令牌)需动态生成。
步骤3: 处理认证和分页
京东API需签名认证,使用HMAC-SHA256算法生成签名。分页逻辑基于总商品数$N$和每页大小$S$,计算总页数:
$$ \text{总页数} = \left\lceil \frac{N}{S} \right\rceil $$
其中$N$通过首次API响应中的total字段获取,$S$为page_size。循环调用API直到所有页遍历完成。

步骤4: 代码实现示例
以下Python代码演示完整流程(使用伪参数,替换为您的App Key、App Secret和shop_id):

import requests
import hashlib
import time
import json

配置参数

app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
shop_id = "YOUR_SHOP_ID" # 替换为实际店铺ID
access_token = "YOUR_ACCESS_TOKEN" # 通过OAuth流程获取

def generate_sign(params, app_secret):
"""生成API签名(HMAC-SHA256)"""
sorted_params = sorted(params.items())
query_str = app_secret + ''.join([f"{k}{v}" for k, v in sorted_params]) + app_secret
return hashlib.sha256(query_str.encode('utf-8')).hexdigest().upper()

def fetch_all_goods(shop_id, max_page_size=100):
"""获取店铺所有商品"""
base_url = "https://api.jd.com/routerjson"
all_goods = []
page_no = 1
total_pages = 1 # 初始值,后续更新

while page_no <= total_pages:
    # 构建请求参数
    params = {
        "method": "jingdong.goods.search",
        "timestamp": str(int(time.time())),
        "format": "json",
        "v": "2.0",
        "app_key": app_key,
        "shop_id": shop_id,
        "page_no": page_no,
        "page_size": max_page_size,
        "access_token": access_token
    }
    params["sign"] = generate_sign(params, app_secret)

    # 发送API请求
    response = requests.post(base_url, data=params)
    data = response.json()

    # 错误处理
    if "error_response" in data:
        error_code = data["error_response"]["code"]
        error_msg = data["error_response"]["msg"]
        raise Exception(f"API错误: 代码{error_code}, 消息: {error_msg}")

    # 解析数据
    result = data["jingdong_goods_search_responce"]["result"]
    goods_list = result["goods_list"]
    total_goods = result["total"]  # 总商品数
    all_goods.extend(goods_list)

    # 更新分页信息
    total_pages = (total_goods + max_page_size - 1) // max_page_size  # 计算总页数: $\left\lceil \frac{N}{S} \right\rceil$
    page_no += 1

return all_goods

执行示例

try:
goods_data = fetch_all_goods(shop_id)
print(f"成功获取{len(goods_data)}个商品")

# 可保存为JSON文件: with open("jd_goods.json", "w") as f: json.dump(goods_data, f)

except Exception as e:
print(f"获取失败: {e}")

步骤5: 数据解析与处理
API响应为JSON格式,关键字段包括:

goods_list: 商品数组,每个商品含sku_id(商品ID)、name(名称)、price(价格)等。
total: 总商品数,用于分页控制。
建议存储到数据库或文件(如JSON/CSV),便于后续分析。
注意事项
频率限制:京东API有调用频率限制(通常100次/分钟),超出会报错code: 13,需添加延时(如time.sleep(0.5))。
认证更新:access_token有效期2小时,过期需刷新(使用refresh_token)。
数据完整性:确保处理网络异常(添加重试机制),并校验响应中的total与实际获取数是否一致。
官方参考:京东API可能更新,请定期查看文档。
通过以上步骤,您可以高效集成京东商品数据。如有疑问,欢迎在评论区讨论!

相关文章
|
4月前
|
JSON 算法 API
通过京东开放平台API根据商品ID获取商品详情技术指南
本文详解京东开放平台商品详情API调用:从注册账号、获取App Key/Secret,到签名生成、Python代码实现及错误处理,涵盖准备工作、接口参数、完整示例与安全注意事项,助开发者快速可靠接入。(239字)
|
6月前
|
缓存 JSON 数据安全/隐私保护
使用京东关键词搜索接口获取商品数据的实操指南
本文详解通过京东开放平台关键词搜索接口(jd.union.open.goods.search)合法获取商品数据的全流程,涵盖账号认证、应用创建、接口调用、签名生成、数据解析及优化策略,助力电商选品、联盟推广与市场分析,提升数据获取效率与合规性。
|
9月前
|
JSON 监控 API
京东商品详情API接口(标题|主图|SKU|价格)
京东商品详情API提供标准化接口,支持通过HTTPS获取商品标题、价格、库存、销量等120+字段,数据实时更新至分钟级。包含jd.item.get和jd.union.open.goods.detail.query等接口,支持批量查询200个SKU,适用于价格监控、竞品分析等电商场景。
1365 156
|
4月前
|
监控 供应链 5G
京东商品搜索API技术实践指南
京东商品搜索API支持关键词检索商品列表、价格、销量等核心数据,提供签名认证、分页排序功能。附Python调用示例及错误码说明,适用于比价系统、竞品监控、推荐引擎等电商开发场景。(239字)
|
4月前
|
安全 API 数据安全/隐私保护
如何通过京东开放平台API获取店铺所有商品列表
本文详解京东开放平台商品列表API调用全流程:涵盖开发者注册、应用创建、店铺授权获取access_token,以及签名生成、参数构造、Python示例代码和响应解析,助力商家/开发者高效自动化管理商品数据。(239字)
|
7月前
|
数据采集 JSON 监控
京东店铺所有商品API接口使用指南
本文介绍如何对接京东开放平台“店铺所有商品API”,通过调用`JD.item_search_shop`接口,以编程方式获取POP或自营店铺的商品信息(如ID、标题、价格、库存等),适用于运营分析、库存监控等场景。需配置AppKey、时间戳等公共参数,并传入seller_id、page_no等业务参数实现分页查询,无需access_token授权。
|
4月前
|
XML JSON 数据挖掘
京东商品详情数据一键获取,item_get API接口讲解
京东item_get是获取单商品详情的核心API,支持一键拉取标题、价格、SKU、库存、详情HTML等结构化数据,适用于反向海淘、代购、ERP同步及比价分析等场景,分基础版与完整版,需认证授权后调用。(239字)
|
4月前
|
JSON 算法 API
调用拼多多开放平台API获取店铺所有商品列表
本文详解拼多多开放平台商品列表API(pdd.goods.list.get)调用方法,涵盖授权流程、签名生成、关键参数、分页处理及响应解析,助力商家/开发者高效获取全量商品数据,适用于商品管理、数据分析等场景。(239字)
|
3月前
|
数据采集 监控 API
淘宝店铺所有商品 API 接口全解析:批量获取全店商品数据(2026 最新版)
在电商数据采集与店铺管理场景中,批量获取淘宝店铺所有商品是核心需求之一。淘宝开放平台提供了标准化 API 接口,支持按店铺、类目、时间等维度拉取商品全量数据,涵盖标题、价格、SKU、库存、销量等关键字段。本文将从接口选型、参数配置、代码实现、数据解析全流程展开讲解,适用于店铺运营、ERP 系统对接、竞品分析等场景。
|
JSON API 开发者
京东商品 API 接口,开发者详解与使用指南
京东开放平台提供商品API,包括获取商品详情、搜索商品、查询分类等功能。开发者可通过API实现商品数据获取与分析,适用于电商选品、价格监控、比价应用等场景。本文详解API调用流程、签名生成方式及Python代码示例,助力高效接入京东商品数据。