宅男在线永久免费观看网直播,亚洲欧洲日产国码无码久久99,野花社区在线观看视频,亚洲人交乣女bbw,一本一本久久a久久精品综合不卡

全部
常見問題
產(chǎn)品動(dòng)態(tài)
精選推薦

如何利用京東商品詳情id拿到商品的詳細(xì)信息 示例展示

管理 管理 編輯 刪除

利用京東商品詳情 ID(即 SKU ID)獲取商品詳細(xì)信息,可通過京東開放平臺(tái)官方 API 或非官方接口(逆向解析)實(shí)現(xiàn)。以下是兩種方式的示例展示,包含代碼實(shí)現(xiàn)與數(shù)據(jù)解析:

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

京東商品詳情頁 URL 格式為:https://item.jd.com/[SKU_ID].html
例如:https://item.jd.com/100032608854.html 中,100032608854 即為 SKU ID。

二、方式一:京東開放平臺(tái)官方 API(推薦,合規(guī)穩(wěn)定)

1. 準(zhǔn)備工作

  • 注冊(cè)京東開放平臺(tái)開發(fā)者賬號(hào):https://open.jd.com/
  • 創(chuàng)建應(yīng)用,獲取 app_keyapp_secret

2. 接口調(diào)用示例(Python)

import requests
import time
import hashlib
import json

class JDProductAPI:
    def __init__(self, app_key, app_secret):
        self.app_key = app_key
        self.app_secret = app_secret
        self.url = "https://api.jd.com/routerjson"  # 官方API網(wǎng)關(guān)
    
    def _sign(self, params):
        """生成簽名(京東API簽名規(guī)則)"""
        sorted_params = sorted(params.items(), key=lambda x: x[0])
        sign_str = self.app_secret
        for k, v in sorted_params:
            sign_str += f"{k}{v}"
        sign_str += self.app_secret
        return hashlib.md5(sign_str.encode()).hexdigest().upper()
    
    def get_product_detail(self, sku_id):
        """獲取商品詳情"""
        params = {
            "method": "biz.product.detail.get",  # 商品詳情接口
            "app_key": self.app_key,
            "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
            "format": "json",
            "v": "1.0",
            "360buy_param_json": json.dumps({"skuId": sku_id})  # 商品ID參數(shù)
        }
        params["sign"] = self._sign(params)
        
        response = requests.get(self.url, params=params)
        return response.json()

# 使用示例
if __name__ == "__main__":
    # 替換為你的app_key和app_secret
    # 封裝好API供應(yīng)商demo url=o0b.cn/ibrad
    app_key = "你的app_key"
    app_secret = "你的app_secret"
    sku_id = "100032608854"  # 商品SKU ID
    
    jd_api = JDProductAPI(app_key, app_secret)
    result = jd_api.get_product_detail(sku_id)
    
    # 解析核心數(shù)據(jù)
    if result.get("success"):
        product = result["result"]["data"]["product"]
        print(f"商品名稱:{product['name']}")
        print(f"當(dāng)前價(jià)格:¥{product['price']['jdPrice']['price']}")
        print(f"原價(jià):¥{product['price']['marketPrice']}")
        print(f"店鋪名稱:{product['shopInfo']['shopName']}")
        print(f"商品標(biāo)簽:{[tag['name'] for tag in product.get('tags', [])]}")
        print(f"庫存狀態(tài):{product['stock']['stockStateName']}")
    else:
        print(f"獲取失?。簕result.get('errorMessage')}")

3. 官方 API 返回核心字段


字段路徑說明示例值
product.name商品名稱"Apple iPhone 14 128GB"
product.price.jdPrice.price當(dāng)前售價(jià)5999.00
product.price.marketPrice市場(chǎng)價(jià)(原價(jià))6999.00
product.shopInfo.shopName店鋪名稱"Apple 京東自營旗艦店"
product.stock.stockStateName庫存狀態(tài)"有貨"
product.skuAttrs.skuAttrSKU 屬性(顏色 / 尺寸等)[{"attrName":"顏色", "attrValues":["黑色","白色"]}]

三、方式二:非官方接口(逆向解析,適合快速驗(yàn)證)

通過分析京東商品頁網(wǎng)絡(luò)請(qǐng)求,獲取非官方接口數(shù)據(jù)。

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

import requests
import json

def get_jd_product_detail(sku_id):
    """逆向獲取京東商品詳情(非官方接口)"""
    # 商品基本信息接口
    # 封裝好API供應(yīng)商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"],  # 當(dāng)前價(jià)
            "original_price": result["price"]["m"],  # 原價(jià)
            "shop_name": result["shopInfo"]["name"],
            "stock": result["stock"]["stockNum"],  # 庫存數(shù)量
            "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"當(dāng)前價(jià)格:¥{detail['price']}")
        print(f"原價(jià):¥{detail['original_price']}")
        print(f"店鋪:{detail['shop_name']}")
        print(f"庫存:{detail['stock']}件")
        print(f"品牌:{detail['brand']}")
        print(f"主圖:{detail['main_image']}")

四、擴(kuò)展應(yīng)用:SKU 多規(guī)格信息獲取

通過商品 ID 獲取所有 SKU(如不同顏色 / 尺寸的價(jià)格、庫存):

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數(shù)據(jù)(非官方接口返回格式可能為JavaScript變量)
    import re
    sku_data = re.findall(r"skuMap\s*=\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"],  # 規(guī)格描述(如"顏色:黑色;尺寸:128GB")
                "price": sku["price"],
                "stock": sku["stockNum"]
            })
        return skus
    return []

# 使用示例
skus = get_jd_skus("100032608854")
print("\nSKU列表:")
for sku in skus[:3]:  # 打印前3個(gè)SKU
    print(f"規(guī)格:{sku['attr']},價(jià)格:¥{sku['price']},庫存:{sku['stock']}件")

總結(jié)

  • 官方 API:適合企業(yè)級(jí)應(yīng)用,數(shù)據(jù)穩(wěn)定、合規(guī),需申請(qǐng)權(quán)限。
  • 非官方接口:適合快速驗(yàn)證或個(gè)人學(xué)習(xí),需處理反爬和接口變更風(fēng)險(xiǎn)。
    通過商品 ID 可獲取價(jià)格、庫存、SKU 規(guī)格、店鋪信息等核心數(shù)據(jù),結(jié)合定時(shí)任務(wù)可實(shí)現(xiàn)價(jià)格監(jiān)控、庫存預(yù)警等功能。
請(qǐng)登錄后查看

鍵盤上的螞蟻 最后編輯于2025-07-10 09:59:00

快捷回復(fù)
回復(fù)
回復(fù)
回復(fù)({{post_count}}) {{!is_user ? '我的回復(fù)' :'全部回復(fù)'}}
排序 默認(rèn)正序 回復(fù)倒序 點(diǎn)贊倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理員 企業(yè)

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
{{item.is_suggest == 1? '取消推薦': '推薦'}}
沙發(fā) 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暫無簡介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打賞
已打賞¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回復(fù) {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打賞
已打賞¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回復(fù)' : '回復(fù)'}}
刪除
回復(fù)
回復(fù)
查看更多
打賞
已打賞¥{{reward_price}}
54
{{like_count}}
{{collect_count}}
添加回復(fù) ({{post_count}})

相關(guān)推薦

快速安全登錄

使用微信掃碼登錄
{{item.label}} 加精
{{item.label}} {{item.label}} 板塊推薦 常見問題 產(chǎn)品動(dòng)態(tài) 精選推薦 首頁頭條 首頁動(dòng)態(tài) 首頁推薦
取 消 確 定
回復(fù)
回復(fù)
問題:
問題自動(dòng)獲取的帖子內(nèi)容,不準(zhǔn)確時(shí)需要手動(dòng)修改. [獲取答案]
答案:
提交
bug 需求 取 消 確 定
打賞金額
當(dāng)前余額:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
請(qǐng)輸入 0.1-{{reward_max_price}} 范圍內(nèi)的數(shù)值
打賞成功
¥{{price}}
完成 確認(rèn)打賞

微信登錄/注冊(cè)

切換手機(jī)號(hào)登錄

{{ bind_phone ? '綁定手機(jī)' : '手機(jī)登錄'}}

{{codeText}}
切換微信登錄/注冊(cè)
暫不綁定
CRMEB客服

CRMEB咨詢熱線 咨詢熱線

400-8888-794

微信掃碼咨詢

CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
返回頂部 返回頂部
CRMEB客服