一、引言
在電商業務蓬勃發展的當下,對于商家、開發者以及數據分析人員而言,獲取電商平臺上店鋪的商品信息至關重要。京東作為國內知名的電商平臺,擁有海量的商品資源。京東店鋪所有商品 API 為開發者提供了一個強大的工具,能夠批量獲取指定京東店鋪內的所有商品詳細信息。借助該 API,商家可以對自家店鋪商品進行管理和分析,開發者可以構建電商相關的應用程序,數據分析人員能夠挖掘商品數據背后的商業價值。通過深入研究和合理運用這個 API,能夠提高電商運營效率、優化用戶體驗,為電商業務的發展提供有力支持。小編:Taobaoapi2014, 前往體驗API:c0b.cc/R4rbK2 。
二、接口概述
1. 接口功能
該 API 的主要功能是根據用戶傳入的京東店鋪 ID,返回該店鋪內所有商品的詳細信息。這些信息涵蓋了商品的基本屬性,如商品名稱、價格、庫存數量、商品描述、圖片鏈接等;還包括商品的銷售相關信息,如銷量、評價數量等。
2. 請求方式
一般采用 HTTP 的 POST 方式。POST 方式適合傳遞復雜的參數,在獲取大量商品信息時,可能需要傳遞多個參數來精確篩選和獲取數據,使用 POST 方式能更好地滿足這種需求。
3. 響應數據格式
響應數據以 JSON 格式返回,示例如下:
json
{
"code": 200,
"message": "success",
"data": {
"total": 100,
"page": 1,
"page_size": 20,
"products": [
{
"product_id": "123456",
"name": "商品名稱",
"price": 199.00,
"stock": 50,
"description": "商品詳細描述",
"image_url": "https://example.com/product_image.jpg",
"sales": 1000,
"evaluation_count": 200
},
// 其他商品信息
]
}
}
其中,code
表示請求的狀態碼,message
是狀態信息,total
是該店鋪商品的總數,page
是當前頁碼,page_size
是每頁商品數量,products
是商品信息列表。
三、Python 請求示例
以下是使用 Python 的 requests
庫調用京東店鋪所有商品 API 的示例代碼:
python
import requests
import hashlib
import time
import urllib.parse
# 假設 API 接口地址,復制鏈接獲取測試。
API url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014"
def generate_sign(params, app_secret):
"""
生成簽名
:param params: 請求參數
:param app_secret: 應用密鑰
:return: 簽名
"""
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = app_secret
for key, value in sorted_params:
sign_str += key + str(value)
sign_str += app_secret
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
return sign
def get_shop_products(page=1, page_size=20, fields=None):
"""
獲取京東店鋪所有商品信息
:param page: 頁碼
:param page_size: 每頁商品數量
:param fields: 需要返回的商品字段
:return: 商品信息
"""
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
params = {
"app_key": APP_KEY,
"timestamp": timestamp,
"shop_id": SHOP_ID,
"page": page,
"page_size": page_size
}
if fields:
params["fields"] = fields
params["sign"] = generate_sign(params, APP_SECRET)
try:
response = requests.post(API_URL, data=params)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"請求發生錯誤: {e}")
except ValueError as ve:
print(f"解析 JSON 數據時發生錯誤: {ve}")
return None
# 示例調用
if __name__ == "__main__":
result = get_shop_products(page=1, page_size=20, fields="name,price,stock")
if result:
print(result)
在上述代碼中,首先定義了生成簽名的函數 generate_sign
,該函數根據請求參數和應用密鑰生成簽名。然后定義了 get_shop_products
函數,用于發送請求并獲取商品信息。在 get_shop_products
函數中,構造了請求參數,調用 generate_sign
函數生成簽名,使用 requests.post
方法發送請求。最后,通過示例調用展示了如何使用該函數獲取商品信息。