一、接口概述
淘寶商品詳情 API(taobao.item.get)是淘寶開放平臺提供的核心接口之一,允許開發(fā)者通過商品 ID 獲取商品的詳細信息。這些信息包括但不限于商品基礎(chǔ)信息(標(biāo)題、價格、庫存等)、詳情描述、圖片資源、SKU 屬性、促銷信息等。該接口廣泛應(yīng)用于電商數(shù)據(jù)分析、價格監(jiān)控、競品分析等場景。
核心功能
- 基礎(chǔ)信息獲?。荷唐?ID、標(biāo)題、價格、庫存等基礎(chǔ)數(shù)據(jù)。
- 詳情描述:HTML 格式的商品描述內(nèi)容。
- 圖片資源:主圖、詳情圖及視頻鏈接。
- SKU 屬性:顏色、尺寸等規(guī)格參數(shù)。
- 促銷信息:限時折扣、滿減等活動數(shù)據(jù)。
二、接口調(diào)用步驟
1. 前期準(zhǔn)備
- 注冊開發(fā)者賬號:訪問淘寶開放平臺,完成企業(yè)認證(個人賬號權(quán)限受限)。
- 創(chuàng)建應(yīng)用:類型選擇“服務(wù)市場應(yīng)用”或“自用型應(yīng)用”,并申請“淘寶客-商品詳情”或“電商數(shù)據(jù)服務(wù)”相關(guān)接口權(quán)限。
- 獲取憑證:獲取 App Key 和 App Secret(用于簽名),以及 Session Key(若需用戶授權(quán)數(shù)據(jù))。
2. 接口調(diào)用
- 請求地址:https://eco.taobao.com/router/rest(沙箱環(huán)境:https://gw.api.tbsandbox.com/router/rest)。
- 請求方式:GET 或 POST。
- 返回格式:JSON。
3. 參數(shù)說明
參數(shù)名稱 | 是否必填 | 類型 | 描述 |
---|---|---|---|
method | 是 | String | 固定值 taobao.item.get |
app_key | 是 | String | 應(yīng)用 Key |
timestamp | 是 | String | 時間戳,格式 yyyy-MM-dd HH:mm:ss |
format | 否 | String | 返回格式,默認 json |
v | 是 | String | API 版本,如 2.0 |
sign_method | 是 | String | 簽名方法,如 md5 |
sign | 是 | String | API 輸入?yún)?shù)簽名結(jié)果 |
num_iid | 是 | String | 商品 ID |
fields | 是 | String | 需返回的字段列表 |
4. 簽名生成
簽名生成是調(diào)用淘寶 API 的關(guān)鍵步驟,用于驗證請求的合法性。以下是 Python 中生成簽名的示例代碼:
import hashlib
import time
import urllib.parse
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
query_string = app_secret
for k, v in sorted_params:
query_string += f"{k}{v}"
query_string += app_secret
return hashlib.md5(query_string.encode("utf-8")).hexdigest().upper()
三、Python 請求示例
以下是使用 Python 調(diào)用淘寶商品詳情 API 的完整示例代碼:
import requests
import hashlib
import time
import urllib.parse
def get_taobao_item_detail(num_iid, app_key, app_secret):
method = "taobao.item.get"
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
format = "json"
v = "2.0"
sign_method = "md5"
params = {
"method": method,
"app_key": app_key,
"timestamp": timestamp,
"format": format,
"v": v,
"sign_method": sign_method,
"num_iid": num_iid,
"fields": "num_iid,title,price,pic_url,desc,item_img.url,props_name,sku.sku_id,sku.properties,sku.quantity,sku.price"
}
params["sign"] = generate_sign(params, app_secret)
url = "https://eco.taobao.com/router/rest"
response = requests.get(url, params=params)
return response.json()
def generate_sign(params, app_secret):
sorted_params = sorted(params.items(), key=lambda x: x[0])
query_string = app_secret
for k, v in sorted_params:
query_string += f"{k}{v}"
query_string += app_secret
return hashlib.md5(query_string.encode("utf-8")).hexdigest().upper()
if __name__ == "__main__":
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
num_iid = "652874751412"
result = get_taobao_item_detail(num_iid, app_key, app_secret)
print(result)
代碼說明
- 簽名生成:按淘寶規(guī)則對參數(shù)排序后拼接 App Secret 進行 MD5 加密。
- 異常處理:捕獲網(wǎng)絡(luò)請求和 JSON 解析異常。
- 響應(yīng)解析:根據(jù)返回的 JSON 數(shù)據(jù)提取所需信息。
四、注意事項
1. 調(diào)用頻率限制
- 免費版 API 有調(diào)用頻率限制(通常為 500 次/天)。
- 商業(yè)版可申請更高調(diào)用配額。
2. 數(shù)據(jù)緩存策略
- 對不常變的數(shù)據(jù)(如商品標(biāo)題、圖片)進行本地緩存。
- 對價格、庫存等實時性要求高的數(shù)據(jù)設(shè)置較短緩存時間。
3. 安全注意事項
- 妥善保管 App Secret。
- 使用 HTTPS 協(xié)議傳輸。
- 對用戶輸入的 item_id 進行合法性校驗。
- 通過本文的介紹和代碼示例,開發(fā)者可以快速掌握淘寶商品詳情 API 的調(diào)用方法,在實際項目中集成淘寶商品數(shù)據(jù)。根據(jù)業(yè)務(wù)需求,可以進一步擴展功能,如商品搜索、訂單同步等。
如遇任何疑問或有進一步的需求,請隨時與我私信或者評論聯(lián)系。