一、接入前準備
- 注冊與認證 訪問淘寶開放平臺/萬邦開放平臺,使用淘寶賬號登錄或注冊新賬號。 完成企業(yè)/個人實名認證,提交營業(yè)執(zhí)照或身份證信息。
- 創(chuàng)建應(yīng)用 登錄后進入「控制臺」→「應(yīng)用管理」→「創(chuàng)建應(yīng)用」。 填寫應(yīng)用名稱、類型(如網(wǎng)頁/移動應(yīng)用)、回調(diào)地址等基本信息。 提交審核后獲取AppKey和AppSecret,務(wù)必妥善保存。
- 申請API權(quán)限 在應(yīng)用管理頁面,申請商品列表相關(guān)接口權(quán)限,例如: taobao.item.search(商品搜索) taobao.item_search_shop(按店鋪ID獲取商品) 等待平臺審核(通常1-3個工作日)。
二、API調(diào)用流程
1. 生成訪問令牌(Access Token)
bash
POST https://oauth.taobao.com/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=YOUR_APPKEY
&client_secret=YOUR_APPSECRET
&code=授權(quán)碼(用戶授權(quán)后獲取)
&redirect_uri=回調(diào)地址
2. 構(gòu)造API請求
以商品搜索接口taobao.item.search
為例,核心參數(shù)如下:
參數(shù) | 必填 | 說明 |
---|---|---|
method | 是 | 接口名稱(如taobao.item.search ) |
app_key | 是 | 你的AppKey |
timestamp | 是 | 當前時間戳(格式:YYYY-MM-DD HH:MM:SS) |
format | 是 | 返回格式(推薦json ) |
v | 是 | API版本(如2.0 ) |
sign_method | 是 | 簽名方法(md5 或hmac ) |
sign | 是 | 請求簽名(按規(guī)則生成) |
q | 否 | 搜索關(guān)鍵詞(如女裝 ) |
cat | 否 | 類目ID(如16,18 表示服裝類目) |
page_no | 否 | 頁碼(默認1 ) |
page_size | 否 | 每頁數(shù)量(默認20 ,最大100 ) |
sort | 否 | 排序方式(如price_asc 價格升序) |
3. 生成簽名(MD5示例)
python
import hashlib
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = app_secret
for k, v in sorted_params:
if k != "sign":
sign_str += f"{k}{v}"
sign_str += app_secret
return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()
4. 發(fā)送HTTP請求(Python示例)
python
import requests
import time
app_key = "YOUR_APPKEY"
app_secret = "YOUR_APPSECRET"
access_token = "YOUR_ACCESS_TOKEN"
url = "https://eco.taobao.com/router/rest"
params = {
"method": "taobao.item.search",
"app_key": app_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"q": "女裝",
"page_no": 1,
"page_size": 50,
"access_token": access_token
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get(url, params=params)
data = response.json()
print(data)
三、響應(yīng)數(shù)據(jù)解析
成功響應(yīng)示例:
json
{
"item_search_response": {
"total_results": 1000,
"items": [
{
"num_iid": "123456789",
"title": "夏季新款連衣裙",
"price": "199.00",
"pic_url": "https://img.alicdn.com/xxx.jpg",
"volume": 200 // 銷量
}
]
}
}
四、注意事項
- 調(diào)用頻率限制:普通應(yīng)用每分鐘≤100次,避免頻繁請求。
- 分頁處理:通過
page_no
和page_size
遍歷全部數(shù)據(jù)。 - 簽名錯誤:檢查
AppSecret
和加密邏輯。 - 權(quán)限不足:確認接口權(quán)限已申請。
- 數(shù)據(jù)合規(guī):僅用于合法用途,禁止爬取敏感信息。
五、常見問題
Q1:如何獲取店鋪所有商品?
- 使用
taobao.item_search_shop
接口,需提供seller_id
(店鋪ID)。
Q2:如何按價格排序?
- 設(shè)置
sort="price_asc"
(升序)或sort="price_desc"
(降序)。
Q3:如何處理分頁?
- 通過page_no和page_size參數(shù)控制,例如: scss 體驗AI代碼助手 代碼解讀復(fù)制代碼python for page in range(1, total_pages + 1): data = fetch_shop_products(page=page)
Q4:如何優(yōu)化調(diào)用性能?
- 緩存頻繁請求的數(shù)據(jù)。
- 使用異步請求(如
aiohttp
庫)。
六、替代方案
若無淘寶開放平臺權(quán)限,可考慮:
- 淘寶客API:需申請?zhí)詫毧蜋?quán)限,適合推廣場景。
- 第三方數(shù)據(jù)服務(wù):如萬邦開放平臺(需注意法律風(fēng)險)。
- 瀏覽器自動化:模擬用戶行為(不推薦,違反淘寶規(guī)則)。
通過以上步驟,可合規(guī)獲取淘寶商品列表數(shù)據(jù)。具體參數(shù)和返回字段以淘寶開放文檔/萬邦開放API文檔為準。