一、接口概述
京東店鋪所有商品 API 接口是京東開放平臺為開發者提供的一項關鍵服務,旨在為其獲取特定店鋪內的全部商品信息提供便捷途徑。借助這一接口,開發者只需提供店鋪的唯一標識(通常為店鋪 ID),就能精準定位并批量獲取該店鋪所售商品的豐富數。這些數據包含商品的基本屬性,如商品名稱、圖片鏈接、價格、庫存數量等;商品的詳細描述,有助于用戶深入了解商品特性;以及商品所屬的分類、品牌信息等。無論是用于電商數據分析、店鋪運營監測,還是構建商品聚合平臺,此接口都能為開發者提供不可或缺的數據支持。小編:Taobaoapi2014
二、接口特點
- 全面覆蓋:能夠一次性獲取指定店鋪下的所有商品信息,無需對每個商品進行單獨請求,大大提高了數據獲取效率。這對于需要對店鋪整體商品情況進行分析,如統計店鋪商品種類數量、計算商品平均價格等場景非常實用。
- 店鋪精準定位:通過店鋪 ID 作為唯一索引,確保獲取的數據準確無誤地來源于目標店鋪。開發者可以輕松針對不同店鋪進行數據采集和分析,無論是大型旗艦店還是小型特色店鋪,都能精準獲取其商品數據。
- 實時數據更新:隨著京東店鋪內商品的動態變化,如新品上架、商品價格調整、庫存變動等,該接口能夠實時同步最新數據。開發者始終能獲取到店鋪商品的最新狀態,為用戶提供及時、準確的商品信息。據安全可靠的調用機制:京東開放平臺采用嚴格的安全措施保障接口的安全使用。通過 AppKey 和 AppSecret 進行身份驗證,并對請求進行簽名處理,有效防止非法請求和數據泄露,確保接口調用的安全性和穩定性,為開發者提供可靠的數據服務。
三、Python 請求示例
1. 安裝必要的庫
在使用 Python 調用京東店鋪所有商品 API 接口前,需安裝requests庫用于發送 HTTP 請求。若尚未安裝,可通過以下命令在命令行中安裝:
pip install requests
2. 構造請求參數及簽名
假設已獲取到京東開放平臺分配的 AppKey 和 AppSecret,以獲取店鋪 ID 為 “123456” 的店鋪所有商品數據為例:
import requests
import hashlib
import time
import random
import string
def generate_sign(params, app_secret):
keys = sorted(params.keys())
query_string = ''
for key in keys:
query_string += key + str(params[key])
query_string += app_secret
sign = hashlib.md5(query_string.encode('utf - 8')).hexdigest().upper()
return sign
封裝好的第三方數據商平臺接口,復制鏈接獲取測試。
demo url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014
app_key = 'your_app_key'
app_secret = 'your_app_secret'
接口地址
url = 'api.jd.com/routerjson'
請求參數
params = {
'app_key': app_key,
'method': 'jd.union.open.shop.goods.get', # 假設獲取店鋪商品的接口方法名
'timestamp': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
'format': 'json',
'v': '2.0',
'sign_method':'md5',
'shopId': '123456', # 店鋪ID
'page': 1, # 頁碼,當商品數量較多時可能需分頁獲取
'pageSize': 50 # 每頁商品數量,可根據需求調整
}
生成簽名
sign = generate_sign(params, app_secret)
params['sign'] = sign
3. 發送請求并處理響應
構造好請求參數和簽名后,發送 HTTP 請求并處理返回的 JSON 數據:
response = requests.post(url, data=params)
if response.status_code == 200:
result = response.json()
if result.get('code') == '0':
product_list = result.get('result').get('goodsList')
for product in product_list:
print(product.get('title'), product.get('price'), product.get('stockNum'))
else:
print('請求失敗,錯誤信息:', result.get('msg'))
else:
print('請求失敗,狀態碼:', response.status_code)
上述代碼中,先定義了生成簽名的函數generate_sign,該函數遵循京東開放平臺的簽名規則,將請求參數與 AppSecret 拼接后進行 MD5 加密生成簽名。接著設置了接口地址、請求參數,生成簽名并添加到請求參數中。最后發送 POST 請求,若請求成功且返回狀態碼為 200,進一步判斷返回結果中的業務狀態碼,若為 0 表示請求成功,可獲取并處理商品列表數據;否則打印錯誤信息。若請求失敗,打印出請求的狀態碼。當店鋪商品數量較多時,可能需要通過循環調整page參數來分頁獲取所有商品數據。