淘寶/天貓獲得淘寶商品詳情 API 如何實現實時資料獲取?

Noah_WB發表於2024-01-16

隨著電商行業的快速發展,越來越多的商家開始將業務擴充到線上。而淘寶作為中國最大的電商平臺之一,其商品數量和交易額均居於世界前列。因此,對於商家來說,瞭解商品的實時資訊非常重要,可以幫助他們更好地管理商品、制定營銷策略等。本文將介紹如何使用淘寶/天貓的商品詳情API介面來實現實時資料獲取。

一、API簡介

淘寶/天貓提供了豐富的API介面,用於獲取商品資料、交易資料、使用者資料等。其中,淘寶商品詳情API是常用的介面之一,可以幫助商家實時獲取商品資訊,包括商品標題、價格、銷量等。此外,此API介面還可以獲取詳情頁面上的標題,價格,優惠券,優惠價,促銷活動,庫存,sku規格屬性,sku屬性圖片,產品圖片,詳情屬性,詳情主圖,商品影片等商品詳情,頁面上看的到的資料均可以介面的形式展示。

二、準備工作

在使用API之前,需要進行一些準備工作。首先,需要在淘寶開放平臺註冊賬號並建立應用,以獲得API的訪問許可權。建立應用後,你會獲得一個App Key和Secret Key,這兩個金鑰將用於後續的API呼叫身份驗證。其次,需要了解API的呼叫方式和相關引數。 ,包括各個介面的詳細說明和使用示例。透過閱讀檔案,可以瞭解如何構建請求URL、傳遞引數以及處理響應。

三、實現實時資料獲取

  1. 構建請求URL

在淘寶商品詳情API中,可以透過商品ID來獲取商品的詳細資訊。因此,首先需要根據商品ID構建請求URL。例如:

×tamp=<timestamp>¶m_json={"item_id":<item_id>}

其中, <your_app_key><your_sign>分別為你的App Key和Secret Key; <timestamp>為當前時間戳; <item_id>為要查詢的商品ID。需要注意的是,請求URL中的引數名和值都需要進行URL編碼。

  1. 傳送HTTP請求

構建好請求URL後,就可以使用程式語言(如Java、Python等)傳送HTTP請求了。以下是一個使用Python傳送GET請求的示例程式碼:

import requests
import json
import time
def get_product_detail(item_id):
    url = "
    params = {
        "app_key": "<your_app_key>",
        "sign": "<your_sign>",
        "method": "taobao.product.detail.get",
        "timestamp": int(time.time()),
        "param_json": json.dumps({"item_id": item_id})
    }
    response = requests.get(url, params=params)
    result = json.loads(response.text)
    return result["data"]["item"]

其中, <your_app_key><your_sign>分別為你的App Key和Secret Key; item_id為要查詢的商品ID。函式返回值為一個字典物件,包含了商品的詳細資訊。需要注意的是,由於淘寶/天貓的API介面有頻率限制,因此需要控制請求的頻率,避免對介面造成過大的壓力。可以使用定時器或迴圈等方式來實現定時或持續地獲取資料。例如:

while True:
    product_detail = get_product_detail("<item_id>")
    print(product_detail)
    time.sleep(60) # 每隔60秒獲取一次資料

以上程式碼會每隔60秒獲取一次商品詳情資料,並將其列印出來。可以根據實際需求調整時間間隔。需要注意的是,如果需要獲取多個商品的資訊,可以將多個商品ID放入一個列表中,然後遍歷列表進行批次查詢。例如:

item_ids = ["<item_id1>", "<item_id2>", "<item_id3>"] # 商品ID列表
for item_id in item_ids:
    product_detail = get_product_detail(item_id)
    print(product_detail)

四、處理響應資料

獲取到API的響應資料後,需要對資料進行處理和解析。淘寶/天貓的商品詳情API返回的資料格式為JSON,可以使用程式語言中的JSON庫(如Python的json庫)進行解析。以下是一個使用Python解析JSON資料的示例程式碼:

import json
def parse_product_detail(response):
    result = json.loads(response)
    data = result["data"]
    item = data["item"]
    # 處理商品資訊
    title = item["title"]
    price = item["price"]
    sales = item["sales"]
    # ...其他欄位的處理
    return title, price, sales

其中, response為API介面返回的響應資料;函式返回值為一個元組,包含了商品的標題、價格和銷量等資訊。可以根據實際需求對其他欄位進行處理和分析。需要注意的是,由於API介面返回的資料量較大,如果需要獲取多個商品的資訊,可以考慮使用分頁查詢的方式,避免一次性獲取過多資料導致記憶體溢位等問題。淘寶/天貓的商品詳情API支援分頁查詢,可以透過設定引數 start_indexnum_iid來獲取指定範圍內的商品資訊。例如:

def get_product_details(item_ids, start_index=0, num_iid=40):
    product_details = []
    for i in range(start_index, start_index + num_iid):
        item_id = item_ids[i % len(item_ids)] # 獲取當前要查詢的商品ID
        response = get_product_detail(item_id) # 傳送請求並獲取響應資料
        title, price, sales = parse_product_detail(response) # 解析響應資料並提取商品資訊
        product_details.append((title, price, sales)) # 將商品資訊新增到列表中
    return product_details

以上程式碼會獲取指定範圍內(預設為前40個)的商品資訊,並將其儲存在一個列表中返回。可以根據實際需求調整起始索引和每頁商品數量等引數。需要注意的是,由於API介面有頻率限制,因此需要控制請求的頻率,避免對介面造成過大的壓力。可以使用定時器或迴圈等方式來實現定時或持續地獲取資料。例如:

while True:
    product_details = get_product_details(item_ids) # 獲取商品詳細資訊列表
    # 處理商品資訊列表...
    time.sleep(60) # 每隔60秒獲取一次資料

以上程式碼會每隔60秒獲取一次商品詳細資訊列表,並進行後續處理。可以根據實際需求調整時間間隔。需要注意的是,如果需要對大量商品的資訊進行分析和處理,可以考慮使用分散式計算框架(如Hadoop、Spark等)來提高處理效率和速度。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026910/viewspace-3004099/,如需轉載,請註明出處,否則將追究法律責任。

相關文章