电子说
对于在京东平台运营店铺的商家或开发者来说,自动化管理和分析店铺商品数据是提升效率的关键。京东开放平台提供了丰富的API接口,其中就包含获取店铺商品列表的功能。本文将详细介绍如何调用此接口。
App Key 和 App Secret。这两个密钥是调用API的身份凭证。access_token(访问令牌),这是代表店铺身份进行API调用的关键凭证。https://api.jd.com/routerjson (此为通用网关地址,具体方法名通过参数传递)POSTaccess_token)调用API时,需要在请求中包含一系列参数。以下列出关键参数:
method: 具体API方法名称,例如 jingdong.product.search (需查阅最新文档确认)。access_token: 店铺授权后获得的访问令牌。app_key: 你的应用 App Key。timestamp: 请求发起的时间戳,格式为 yyyy-MM-dd HH:mm:ss。v: API版本号,例如 2.0。sign: 根据请求参数生成的签名,用于验证请求合法性(见下文签名生成)。page: 请求的页码(整数)。page_size: 每页返回的商品数量(整数)。sort: 商品排序方式。fields: 指定需要返回的商品信息字段,例如 ware_id, title, price, stock 等。如果不指定,通常返回默认字段集。sign)签名是保证请求安全的重要环节。生成规则通常如下:
sign 参数本身)放入一个集合。name1value1name2value2...。App Secret。sign 的值。
import requests
import time
import hashlib
import urllib.parse
# 替换为你的实际信息
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
page = 1
page_size = 10 # 每页10条
# 公共参数
params = {
"method": "jingdong.product.search", # 请替换为实际方法名
"access_token": access_token,
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
"v": "2.0", # 版本号
"page": page,
"page_size": page_size
}
# 生成签名 - 步骤1: 参数排序
sorted_params = sorted(params.items(), key=lambda x: x[0])
# 步骤2 & 3: 拼接键值对
sign_str = ""
for k, v in sorted_params:
sign_str += k + v
# 步骤4: 追加App Secret
sign_str += app_secret
# 步骤5: MD5加密
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest()
# 步骤6: 转换为大写
sign = sign.upper()
# 将签名加入请求参数
params["sign"] = sign
# 发起POST请求
url = "https://api.jd.com/routerjson"
response = requests.post(url, data=params)
# 处理响应
if response.status_code == 200:
data = response.json()
# 检查京东返回的code
if data.get("code") == "0": # 通常0表示成功,具体看京东定义
# 商品列表通常在 data["product_search_response"]["items"] 或类似路径下,需根据实际响应结构解析
product_list = data["product_search_response"]["items"]
for product in product_list:
print(f"商品ID: {product['ware_id']}, 标题: {product['title']}, 价格: {product['price']}")
else:
print(f"接口调用失败! 错误码: {data.get('code')}, 错误信息: {data.get('msg')}")
else:
print(f"HTTP请求失败! 状态码: {response.status_code}")

注意: 上述代码中的 product_search_response 和 items 是示例结构,实际响应字段名称请务必查阅京东开放平台对应API的最新文档。
成功的响应通常包含一个 code 字段(值为 0 或类似成功标识)和包含商品数据的 data 对象。商品列表通常是一个数组(如 items),数组中的每个元素代表一个商品,包含你在 fields 参数中指定的信息(或默认字段)。
需要仔细解析返回的JSON结构,提取所需的商品信息(如商品ID ware_id、标题 title、价格 price、库存 stock 等)。
access_token 有效。page 参数)来获取所有商品。1001、权限不足等)。App Secret 是敏感信息,务必妥善保管,避免泄露。不要在客户端代码或公开场合暴露。通过以上步骤,开发者即可实现通过京东开放平台API批量获取授权店铺的商品列表数据,为后续的商品管理、数据分析等场景提供数据支持。
全部0条评论
快来发表一下你的评论吧 !