以下是一個完整的示例,展示如何在上傳圖片后調用淘寶按圖搜索商品(拍立淘)API進行商品搜索:
1. 準備工作
-
注冊賬號并獲取API密鑰:在淘寶開放平臺注冊賬號,創建應用,獲取
app_key
和app_secret
。 -
安裝依賴庫:確保安裝了
requests
和base64
庫,用于發送HTTP請求和圖片編碼。
2. 代碼實現
以下是一個完整的Python代碼示例,展示如何上傳圖片并調用API進行商品搜索:
Python
import requests
import base64
import hashlib
import time# 替換為你的API密鑰
app_key = 'your_app_key'
app_secret = 'your_app_secret'# 圖片路徑
image_path = 'your_image.jpg'# 讀取圖片并進行Base64編碼
with open(image_path, 'rb') as f:image_data = base64.b64encode(f.read()).decode('utf-8')# 構建公共請求參數
params = {'app_key': app_key,'method': 'taobao.item.search.img','format': 'json','v': '2.0','sign_method': 'md5','timestamp': int(time.time()),'image': image_data # 圖片的Base64編碼數據
}# 生成簽名
def generate_sign(params, app_secret):sorted_params = sorted(params.items(), key=lambda x: x[0])param_str = ''.join([f"{k}{v}" for k, v in sorted_params])sign_str = app_secret + param_str + app_secretreturn hashlib.md5(sign_str.encode()).hexdigest().upper()params['sign'] = generate_sign(params, app_secret)# 發送請求
response = requests.post('https://eco.taobao.com/router/rest', data=params, headers={'Content-Type': 'application/x-www-form-urlencoded'})# 解析響應
if response.status_code == 200:data = response.json()if 'items' in data and 'item' in data['items']:items = data['items']['item']for item in items:print(f"商品標題:{item['title']}")print(f"商品價格:{item['price']}元")print(f"商品鏈接:{item['detail_url']}")print(f"銷量:{item['sales']}")print("-" * 40)else:print("未找到相似商品")
else:print(f"請求失敗,狀態碼:{response.status_code}")
3. 代碼說明
-
圖片上傳:將圖片文件讀取為二進制數據,并進行Base64編碼。
-
生成簽名:根據淘寶API的要求,使用
app_secret
和請求參數生成簽名。 -
發送請求:將圖片數據和簽名作為請求參數發送到API接口。
-
解析響應:解析返回的JSON數據,提取商品信息并打印。
4. 注意事項
-
圖片要求:圖片格式支持JPG/PNG,大小不超過2MB,建議主體商品占比超過60%。
-
調用頻率限制:免費版接口默認QPS≤5,超出會觸發限流。
-
簽名驗證:注意參數排序和MD5編碼規則。
通過以上步驟,你可以成功調用淘寶拍立淘API,實現按圖搜索商品的功能。