一、準備工作
- 注冊開發者賬號
- 訪問淘寶開放平臺官網/萬邦開放平臺,完成企業開發者認證(個人賬號權限受限),使用已有淘寶賬號可直接登錄。
- 創建應用并填寫基本信息(如應用名稱、類型等),系統生成App Key和App Secret,需妥善保管。
- 申請API權限
- 根據業務需求申請接口權限,常用接口包括:
taobao.item.get
:獲取單個商品詳情。taobao.items.search
:關鍵詞搜索商品。taobao.itempropvalues.get
:查詢商品類目屬性。
- 部分接口需提交詳細用途說明,審核周期約1~3個工作日。
- 根據業務需求申請接口權限,常用接口包括:
- 安裝依賴庫
- 使用Python調用API時,需安裝
requests
庫(HTTP請求庫)和hashlib
庫(加密庫)。
- 使用Python調用API時,需安裝
二、構造請求參數
- 必選參數
app_key
:應用的App Key。timestamp
:當前時間,格式為YYYY-MM-DD HH:MM:SS
,用于防止請求被重放攻擊。sign
:請求簽名,用于驗證請求的合法性。
- 可選參數
q
:搜索關鍵詞。cat
:分類ID,用于篩選特定類目的商品。page
:頁碼,默認每頁60條數據,可按需調整。page_size
:每頁顯示的商品數量。start_price
、end_price
:價格范圍參數。sort
:排序方式,如按銷量、價格等排序。
- 生成簽名
- 將所有請求參數(包括公共參數和業務參數)按參數名的字典序排序。
- 將排序后的參數拼接成字符串,并在字符串末尾加上App Secret。
- 對拼接后的字符串進行MD5加密,生成簽名。
三、發送請求并解析響應
- 構造請求URL
- 使用HTTP GET或POST方式構造請求,URL示例為
https://eco.taobao.com/router/rest
。
- 使用HTTP GET或POST方式構造請求,URL示例為
- 發送請求
- 使用Python的
requests
庫發送請求,示例代碼如下:python
import requests
import hashlib
import time
# 配置信息
APP_KEY = 'your_app_key'
APP_SECRET = 'your_app_secret'
API_URL = 'https://eco.taobao.com/router/rest'
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = ''.join([f'{k}{v}' for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
def search_products(keyword, page=1):
params = {
'method': 'taobao.item.search',
'app_key': APP_KEY,
'timestamp': int(time.time()),
'v': '2.0',
'format': 'json',
'q': keyword,
'page_no': page,
'page_size': 40,
}
params['sign'] = generate_sign(params, APP_SECRET)
response = requests.get(API_URL, params=params)
return response.json()
# 調用示例
result = search_products('手機', page=1)
print(result)
- 使用Python的
- 解析響應數據
- API接口返回的數據通常為JSON格式,需使用合適的工具或庫進行解析,以提取所需的商品信息。
- 返回內容主要包括商品列表數據,每個商品數據包含商品ID、商品標題、商品價格、商品銷量、商品主圖鏈接、商品詳情頁鏈接等字段。
四、注意事項
- 接口調用限制
- 淘寶API接口有調用頻率限制(如每分鐘500次),需合理控制請求間隔。
- 錯誤處理
- 建議添加重試機制和日志記錄,處理網絡異常或API限流。
- 數據合規性
- 確保使用符合淘寶開放平臺規則,避免直接爬取淘寶網站數據(可能違反其服務條款)。
- 字段選擇
- 根據需求選擇需要的返回字段,減少不必要的數據傳輸。