京东商品详情 ID(即 SKU ID)获取商品详细信息参数

电子说

1.4w人已加入

描述

利用京东商品详情 ID(即 SKU ID)获取商品详细信息,可通过京东开放平台官方 API 或非官方接口(逆向解析)实现。以下是两种方式的示例展示,包含代码实现与数据解析:

一、核心概念:京东商品 ID(SKU ID)

京东商品详情页 URL 格式为:https://item.jd.com/[SKU_ID].html
 

二、方式一:京东开放平台官方 API(推荐,合规稳定)

1. 准备工作

注册京东开放平台开发者账号

创建应用,获取 app_key 和 app_secret

2. 接口调用示例(Python)

python

体验AI代码助手

代码解读

复制代码

 

import requests
import json

def get_jd_product_detail(sku_id):
    """逆向获取京东商品详情(非官方接口)"""
    # 商品基本信息接口
    # 封装好API供应商demo url=o0b.cn/ibrad
    url = f"https://item-soa.jd.com/getItemDetail?skuId={sku_id}"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
        "Referer": f"https://item.jd.com/{sku_id}.html"
    }
    
    response = requests.get(url, headers=headers)
    data = response.json()
    
    if data.get("code") == 0:
        result = data["data"]
        return {
            "name": result["itemName"],
            "price": result["price"]["p"],  # 当前价
            "original_price": result["price"]["m"],  # 原价
            "shop_name": result["shopInfo"]["name"],
            "stock": result["stock"]["stockNum"],  # 库存数量
            "brand": result["brand"]["name"],  # 品牌
            "main_image": result["itemImg"]["slaveUrl"][0]  # 主图
        }
    else:
        return {"error": "获取失败"}

# 使用示例
if __name__ == "__main__":
    sku_id = "100032608854"
    detail = get_jd_product_detail(sku_id)
    if "error" not in detail:
        print(f"商品名称:{detail['name']}")
        print(f"当前价格:¥{detail['price']}")
        print(f"原价:¥{detail['original_price']}")
        print(f"店铺:{detail['shop_name']}")
        print(f"库存:{detail['stock']}件")
        print(f"品牌:{detail['brand']}")
        print(f"主图:{detail['main_image']}")
京东

 

3. 官方 API 返回核心字段

字段路径 说明 示例值
product.name 商品名称 "Apple iPhone 14 128GB"
product.price.jdPrice.price 当前售价 5999.00
product.price.marketPrice 市场价(原价) 6999.00
product.shopInfo.shopName 店铺名称 "Apple 京东自营旗舰店"
product.stock.stockStateName 库存状态 "有货"
product.skuAttrs.skuAttr SKU 属性(颜色 / 尺寸等) [{"attrName":"颜色", "attrValues":["黑色","白色"]}]

三、方式二:非官方接口(逆向解析,适合快速验证)

通过分析京东商品页网络请求,获取非官方接口数据。

1. 商品详情接口(非官方)

python

体验AI代码助手

代码解读

四、扩展应用:SKU 多规格信息获取

通过商品 ID 获取所有 SKU(如不同颜色 / 尺寸的价格、库存):

python

体验AI代码助手

代码解读

 

def get_jd_skus(sku_id):
    """获取商品所有SKU信息"""
    url = f"https://cd.jd.com/skuDetail?skuId={sku_id}"
    headers = {"User-Agent": "Mozilla/5.0"}
    response = requests.get(url, headers=headers)
    
    # 解析SKU数据(非官方接口返回格式可能为JavaScript变量)
    import re
    sku_data = re.findall(r"skuMaps*=s*({.*?});", response.text)
    if sku_data:
        sku_map = json.loads(sku_data[0])
        skus = []
        for sku in sku_map.values():
            skus.append({
                "sku_id": sku["skuId"],
                "attr": sku["skuAttr"],  # 规格描述(如"颜色:黑色;尺寸:128GB")
                "price": sku["price"],
                "stock": sku["stockNum"]
            })
        return skus
    return []

# 使用示例
skus = get_jd_skus("100032608854")
print("nSKU列表:")
for sku in skus[:3]:  # 打印前3个SKU
    print(f"规格:{sku['attr']},价格:¥{sku['price']},库存:{sku['stock']}件")
京东

 

总结

官方 API:适合企业级应用,数据稳定、合规,需申请权限。

非官方接口:适合快速验证或个人学习,需处理反爬和接口变更风险。
通过商品 ID 可获取价格、库存、SKU 规格、店铺信息等核心数据,结合定时任务可实现价格监控、库存预警等功能。


审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分