如何使用 Taobao API 查詢商品資訊並實現關鍵字搜尋功能
前言
Taobao API 提供強大的商品資訊查詢功能,讓開發者可以依據商品 ID、標題關鍵字、類目等進行精準搜尋與查詢。本篇文章將實際示範如何調用與整合這些查詢功能,並深入解析常用的搜尋參數與過濾邏輯。此外,我們也會附上 Python 與 Node.js 的完整程式碼範例,幫助您快速在專案中實作。
本篇重點聚焦於:
查詢商品詳情(根據商品 ID)
關鍵字搜尋商品清單
分頁與排序處理
常見的搜尋過濾條件
實戰演練程式碼
1. 商品查詢 API 功能概覽
在 Taobao 提供的開放平台中,商品查詢屬於最常見的應用場景。常見的接口包括:
功能 | 接口用途 | 說明 |
---|---|---|
| 單一商品查詢 | 根據商品 ID 查詢詳細資訊 |
| 關鍵字搜尋 | 根據標題或描述關鍵字搜尋商品列表 |
| 商品類目查詢 | 查詢類目 ID 與名稱,用於過濾分類 |
這些接口幾乎涵蓋了絕大多數商品資訊相關需求,尤其適合用於:
比價平台
電商整合工具
類似淘口令功能的應用
智能推薦與個人化搜尋
2. 單一商品查詢:taobao.item.get
請求參數範例
參數 | 說明 |
---|---|
| taobao.item.get |
| 商品 ID(唯一編號) |
| 要查詢的欄位(如 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
這個接口是實作搜尋功能的核心,支援使用關鍵字、類目、價格範圍、排序等條件進行精確篩選。
常見參數一覽:
參數 | 說明 |
---|---|
| 關鍵字(如「耳機」) |
| 類目 ID(可用 itemcats.get 查詢) |
| 價格範圍 |
| 排序方式(如 |
| 分頁控制 |
4. Python 範例:關鍵字搜尋商品
import requestsimport 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.get
和 taobao.items.search
這兩個核心接口,您可以快速構建出完整的商品展示與搜尋系統。配合分頁與參數組合,可應對多種電商應用場景。
Articles related to APIs :
Introduction to Taobao API: Basic Concepts and Application Scenarios
Taobao API: Authentication & Request Flow Explained with Code Examples
如您需要 Taobao API 可聯係我們:support@luckdata.com