如何使用 Taobao API 查詢商品資訊並實現關鍵字搜尋功能

前言

Taobao API 提供強大的商品資訊查詢功能,讓開發者可以依據商品 ID、標題關鍵字、類目等進行精準搜尋與查詢。本篇文章將實際示範如何調用與整合這些查詢功能,並深入解析常用的搜尋參數與過濾邏輯。此外,我們也會附上 Python 與 Node.js 的完整程式碼範例,幫助您快速在專案中實作。

本篇重點聚焦於:

  • 查詢商品詳情(根據商品 ID)

  • 關鍵字搜尋商品清單

  • 分頁與排序處理

  • 常見的搜尋過濾條件

  • 實戰演練程式碼

1. 商品查詢 API 功能概覽

在 Taobao 提供的開放平台中,商品查詢屬於最常見的應用場景。常見的接口包括:

功能

接口用途

說明

taobao.item.get

單一商品查詢

根據商品 ID 查詢詳細資訊

taobao.items.search

關鍵字搜尋

根據標題或描述關鍵字搜尋商品列表

taobao.itemcats.get

商品類目查詢

查詢類目 ID 與名稱,用於過濾分類

這些接口幾乎涵蓋了絕大多數商品資訊相關需求,尤其適合用於:

  • 比價平台

  • 電商整合工具

  • 類似淘口令功能的應用

  • 智能推薦與個人化搜尋

2. 單一商品查詢:taobao.item.get

請求參數範例

參數

說明

method

taobao.item.get

num_iid

商品 ID(唯一編號)

fields

要查詢的欄位(如 title, price, pic_url 等)

返回資料範例(JSON):

{

"item_get_response": {

"item": {

"title": "無線藍牙耳機",

"price": "129.00",

"pic_url": "https://image.taobao.com/xxx.jpg",

"num_iid": 1234567890123,

"seller_id": "taobao_seller_01"

}

}

}

3. 關鍵字商品搜尋:taobao.items.search

這個接口是實作搜尋功能的核心,支援使用關鍵字、類目、價格範圍、排序等條件進行精確篩選。

常見參數一覽:

參數

說明

q

關鍵字(如「耳機」)

cat

類目 ID(可用 itemcats.get 查詢)

start_price, end_price

價格範圍

sort

排序方式(如 price_asc, price_desc

page_no, page_size

分頁控制

4. Python 範例:關鍵字搜尋商品

import requests

import hashlib

import time

API_URL = 'https://api.taobao.com/endpoint'

API_KEY = 'YOUR_API_KEY'

API_SECRET = 'YOUR_API_SECRET'

def generate_signature(params):

sorted_keys = sorted(params.keys())

base_string = API_SECRET + ''.join(f"{key}{params[key]}" for key in sorted_keys) + API_SECRET

return hashlib.md5(base_string.encode('utf-8')).hexdigest().upper()

def search_products(keyword, page=1, page_size=10):

params = {

'method': 'taobao.items.search',

'api_key': API_KEY,

'q': keyword,

'page_no': page,

'page_size': page_size,

'timestamp': int(time.time())

}

params['signature'] = generate_signature(params)

response = requests.get(API_URL, params=params)

if response.status_code == 200:

result = response.json()

items = result.get('items_search_response', {}).get('items', {}).get('item', [])

for item in items:

print(f"{item['title']} - NT${item['price']}")

else:

print(f"錯誤:{response.status_code}, {response.text}")

search_products("藍牙耳機", page=1)

5. Node.js 範例:查詢商品詳細資訊

const axios = require('axios');

const crypto = require('crypto');

const API_URL = 'https://api.taobao.com/endpoint';

const API_KEY = 'YOUR_API_KEY';

const API_SECRET = 'YOUR_API_SECRET';

function generateSignature(params) {

const sortedKeys = Object.keys(params).sort();

let baseString = API_SECRET;

sortedKeys.forEach(key => {

baseString += key + params[key];

});

baseString += API_SECRET;

return crypto.createHash('md5').update(baseString).digest('hex').toUpperCase();

}

async function getProductById(numIid) {

const params = {

method: 'taobao.item.get',

api_key: API_KEY,

num_iid: numIid,

fields: 'title,price,pic_url',

timestamp: Math.floor(Date.now() / 1000)

};

params.signature = generateSignature(params);

try {

const response = await axios.get(API_URL, { params });

console.log('商品資訊:', response.data.item_get_response.item);

} catch (err) {

console.error('錯誤:', err.response ? err.response.data : err.message);

}

}

getProductById(1234567890123);

6. 搜尋最佳實踐建議

建議項目

說明

精準匹配關鍵字

若搜尋結果過多,可搭配商品類目 ID 限制範圍

分頁與快取

建議搭配 Redis 等工具將熱門查詢快取以降低 API 請求壓力

結果排序

可根據價格、銷量、更新時間等條件排序結果,提升使用者體驗

防止查詢風暴

若用戶端為開放式查詢(如輸入框),應實作 debounce 機制與請求頻率控制

結語

本篇文章介紹了如何使用 Taobao API 查詢單一商品資訊與實作關鍵字搜尋功能。透過 taobao.item.gettaobao.items.search 這兩個核心接口,您可以快速構建出完整的商品展示與搜尋系統。配合分頁與參數組合,可應對多種電商應用場景。

Articles related to APIs :

如您需要 Taobao API 可聯係我們:support@luckdata.com