二、核心參數(shù)說明
BASE_URL = "https://gw.api.alibaba.com/openapi/param2/1/com.alibaba"
ENDPOINT = "/v4/openapi/param2/api/product/search"
required_params = {
"keywords": "女鞋", # 搜索關(guān)鍵詞
"pageSize": 20, # 每頁數(shù)量
"pageNo": 1, # 頁碼
"sort": "price_asc", # 排序方式
"categoryId": "", # 類目ID(可選)
"highQualityItems": True # 是否只返回優(yōu)質(zhì)商品
}
三、Python調(diào)用示例
import requests
import hashlib
import time
class AlibabaSearchAPI:
def __init__(self, app_key, app_secret):
self.app_key = app_key
self.app_secret = app_secret
def generate_sign(self, params):
param_str = "&".join(f"{k}{v}" for k,v in sorted(params.items()))
return hashlib.sha1(f"{self.app_secret}{param_str}{self.app_secret}".encode()).hexdigest().upper()
def search_products(self, keywords, page=1):
params = {
"keywords": keywords,
"pageNo": page,
"pageSize": 20,
"timestamp": str(int(time.time()*1000)),
"app_key": self.app_key
}
params["sign"] = self.generate_sign(params)
response = requests.get(
f"{BASE_URL}{ENDPOINT}",
params=params,
headers={"Accept": "application/json"}
)
return response.json()
# 使用示例
api = AlibabaSearchAPI("YOUR_APP_KEY", "YOUR_APP_SECRET")
result = api.search_products("藍(lán)牙耳機(jī)")
print(result["result"]["products"])
四、響應(yīng)數(shù)據(jù)結(jié)構(gòu)解析
成功響應(yīng)包含以下核心字段:
{
"success": true,
"result": {
"total": 1520,
"products": [
{
"productId": "12345678",
"title": "無線藍(lán)牙耳機(jī)5.0",
"price": {"amount": 15.99, "currency": "USD"},
"imageUrl": "https://...",
"minOrder": 100
}
]
}
}
四、最佳實(shí)踐建議
實(shí)現(xiàn)請求重試機(jī)制(建議3次)
添加本地緩存(Redis/Memcached)
控制并發(fā)請求量(<5QPS)
使用協(xié)程提高IO效率