<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    京東API接口實戰:獲取商品詳情數據(價格、主圖、詳情圖、評價)

    管理 管理 編輯 刪除

    在電商數據分析和系統集成領域,京東API提供了強大的數據獲取能力。本文將詳細介紹如何通過京東開放平臺的API接口獲取商品詳情數據,包括價格信息、主圖、詳情圖以及商品評價等核心數據。


    item_get 獲得JD商品詳情

    item_search 按關鍵字搜索商品

    item_search_img 按圖搜索京東商品(拍立淘)

    item_search_shop 獲得店鋪的所有商品

    item_history_price 獲取商品歷史價格信息

    item_recommend 獲取推薦商品列表

    buyer_order_list 獲取購買到的商品訂單列表

    buyer_order_datail 獲取購買到的商品訂單詳情

    upload_img 上傳圖片到JD

    item_review 獲得JD商品評論

    cat_get 獲得jd商品分類

    一、京東API接入準備

    1. 注冊開發者賬號

    首先需要訪問API開放平臺注冊開發者賬號,完成企業或個人認證。


    2. 創建應用獲取密鑰

    在控制臺創建應用后,系統會分配給你以下關鍵信息:


    App Key:應用唯一標識


    App Secret:用于簽名的密鑰


    Access Token:訪問令牌


    python


    復制


    下載


    # 示例配置

    JD_CONFIG = {

       'app_key': 'your_app_key',

       'app_secret': 'your_app_secret',

       'access_token': 'your_access_token',

       'api_url': 'https://api.jd.com/routerjson'

    }

    二、獲取商品基礎信息

    1. 商品詳情API

    京東的商品詳情接口可以通過商品SKU ID獲取基本信息。


    python


    復制


    下載


    import requests

    import hashlib

    import time


    def get_jd_product_detail(sku_id):

       method = 'jd.union.open.goods.promotiongoodsinfo.query'

       timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())

       

       params = {

           'goodsReq': {

               'skuIds': [sku_id],

               'fields': 'sku_name,sku_price,image_url,coupon_info'

           }

       }

       

       # 構造簽名

       sign_str = f'{JD_CONFIG["app_secret"]}access_token{JD_CONFIG["access_token"]}app_key{JD_CONFIG["app_key"]}method{method}timestamp{timestamp}v2.0{JD_CONFIG["app_secret"]}'

       sign = hashlib.md5(sign_str.encode()).hexdigest().upper()

       

       payload = {

           'method': method,

           'app_key': JD_CONFIG['app_key'],

           'access_token': JD_CONFIG['access_token'],

           'timestamp': timestamp,

           'v': '2.0',

           'sign': sign,

           'param_json': json.dumps(params)

       }

       

       response = requests.post(JD_CONFIG['api_url'], data=payload)

       return response.json()

    2. 解析返回數據

    成功調用后會返回JSON格式數據,包含:


    商品名稱(sku_name)


    京東價(sku_price)


    主圖URL(image_url)


    優惠信息(coupon_info)


    三、獲取商品圖片數據

    1. 主圖獲取

    商品主圖通常包含多張不同角度的展示圖,可以從返回的image_url字段獲取。


    python


    復制


    下載


    def extract_product_images(product_data):

       images = []

       if 'image_info' in product_data:

           image_list = product_data['image_info']['image_list']

           for img in image_list:

               images.append({

                   'url': img['url'],

                   'type': 'main'  # 主圖標識

               })

       return images

    2. 詳情圖獲取

    商品詳情圖需要調用專門的詳情API:


    python


    復制


    下載


    def get_jd_product_desc(sku_id):

       method = 'jd.union.open.goods.bigfield.query'

       params = {

           'skuIds': sku_id,

           'fields': 'wareQD,wdesc'

       }

       # ... 構造簽名和請求類似前面示例

       response = requests.post(JD_CONFIG['api_url'], data=payload)

       data = response.json()

       

       # 解析詳情圖

       desc_images = []

       if 'wareQD' in data:

           # 使用正則提取詳情圖中的圖片URL

           import re

           pattern = re.compile(r'src="(https?://[^"]+\.(jpg|png|jpeg))"', re.I)

           matches = pattern.finditer(data['wareQD'])

           for match in matches:

               desc_images.append(match.group(1))

       

       return desc_images

    四、獲取商品價格信息

    京東的價格體系較為復雜,包含多種價格類型:


    python


    復制


    下載


    def parse_price_info(product_data):

       price_info = {

           'jd_price': product_data.get('priceInfo', {}).get('price'),

           'original_price': product_data.get('priceInfo', {}).get('originPrice'),

           'plus_price': product_data.get('priceInfo', {}).get('plusPrice'),  # PLUS會員價

           'discount': product_data.get('priceInfo', {}).get('discount'),

           'coupons': []

       }

       

       # 解析優惠券信息

       if 'couponInfo' in product_data:

           for coupon in product_data['couponInfo']['couponList']:

               price_info['coupons'].append({

                   'discount': coupon['discount'],

                   'quota': coupon['quota'],

                   'time_range': f"{coupon['useStartTime']}-{coupon['useEndTime']}"

               })

       

       return price_info

    五、獲取商品評價數據

    京東評價API可以獲取商品的好評率、評價數量等數據:


    python


    復制


    下載


    def get_jd_product_comments(sku_id, page=1, page_size=10):

       method = 'jd.union.open.goods.comments.query'

       params = {

           'skuId': sku_id,

           'pageNo': page,

           'pageSize': page_size,

           'type': 1  # 1:好評 2:中評 3:差評 4:曬圖

       }

       # ... 構造簽名和請求

       

       response = requests.post(JD_CONFIG['api_url'], data=payload)

       data = response.json()

       

       comments = []

       if 'comments' in data:

           for comment in data['comments']:

               comments.append({

                   'user': comment['nickname'],

                   'content': comment['content'],

                   'score': comment['score'],

                   'time': comment['creationTime'],

                   'images': [img['url'] for img in comment['images']] if 'images' in comment else []

               })

       

       return {

           'good_rate': data.get('goodRate'),

           'total_count': data.get('commentsCount'),

           'comments': comments

       }

    六、完整數據獲取流程

    python


    復制


    下載


    def get_full_product_info(sku_id):

       # 1. 獲取基礎信息

       base_info = get_jd_product_detail(sku_id)

       

       # 2. 獲取詳情數據

       desc_images = get_jd_product_desc(sku_id)

       

       # 3. 獲取評價數據

       comments = get_jd_product_comments(sku_id)

       

       # 整合所有數據

       full_data = {

           'base_info': base_info,

           'price_info': parse_price_info(base_info),

           'images': {

               'main_images': extract_product_images(base_info),

               'desc_images': desc_images

           },

           'comments': comments

       }

       

       return full_data

    七、注意事項與優化建議

    頻率限制:京東API有嚴格的調用頻率限制,建議添加適當的延遲和緩存機制


    錯誤處理:完善各種錯誤情況的處理邏輯


    數據緩存:對不常變動的數據(如商品詳情)進行本地緩存


    異步處理:對于大量數據獲取,考慮使用異步請求提高效率


    合規使用:嚴格遵守京東API使用協議,不進行違規數據采集


    結語

    通過京東開放平臺API,開發者可以合法合規地獲取豐富的商品數據。本文介紹了從基礎信息到價格、圖片、評價等完整的數據獲取流程,實際應用中可根據需求進行擴展和優化。正確使用這些API可以為價格監控、競品分析、商品推薦等應用場景提供可靠的數據支持。


    請登錄后查看

    65035d961458 最后編輯于2025-04-27 13:22:40

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

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

    作者 管理員 企業

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

    {{itemf.name}}

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

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

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

    相關推薦

    快速安全登錄

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

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

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