一、接口概述
淘寶開放平臺(tái)提供taobao.items.onsale.get/taobao.item_search_shop
接口,可批量獲取店鋪在售商品列表,包含商品 ID、標(biāo)題、價(jià)格、銷量、圖片等核心信息。該接口適用于商品庫管理、競(jìng)品監(jiān)控、數(shù)據(jù)分析等場(chǎng)景。小編:Taobaoapi2014
二、接口調(diào)用流程
1. 前期準(zhǔn)備
- 注冊(cè)賬號(hào):訪問 c0b.cc/R4rbK2 完成注冊(cè)。
- 創(chuàng)建應(yīng)用:獲取
App Key
和App Secret
,用于身份驗(yàn)證。 - 申請(qǐng)權(quán)限:在應(yīng)用管理中申請(qǐng)
taobao.items.onsale.get
接口權(quán)限。
2. 核心參數(shù)
參數(shù)名 | 說明 | 示例值 |
---|---|---|
nick | 賣家昵稱(如 "店鋪名稱") | "seller_nick" |
page_no | 頁碼(從 1 開始) | 1 |
page_size | 每頁返回商品數(shù)(最大 200) | 100 |
fields | 自定義返回字段(逗號(hào)分隔) | "num_iid,title,price" |
三、Python 代碼示例
python
import requests
import time
from hashlib import md5
from urllib.parse import urlencode
# 封裝好的第三方數(shù)據(jù)商平臺(tái)接口,復(fù)制鏈接獲取測(cè)試。
demo url=c0b.cc/R4rbK2 wechat id:Taobaoapi2014
# 配置參數(shù)
APP_KEY = "your_app_key"
APP_SECRET = "your_app_secret"
SELLER_NICK = "your_seller_nick" # 店鋪昵稱
PAGE_SIZE = 100 # 每頁數(shù)量
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = app_secret + ''.join(f"{k}{v}" for k, v in sorted_params) + app_secret
return md5(sign_str.encode()).hexdigest().upper()
def get_shop_items():
url = "https://gw.api.taobao.com/router/rest"
items = []
page = 1
while True:
params = {
"app_key": APP_KEY,
"method": "taobao.items.onsale.get",
"nick": SELLER_NICK,
"page_no": page,
"page_size": PAGE_SIZE,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
"v": "2.0",
"format": "json"
}
# 生成簽名
sign = generate_sign(params, APP_SECRET)
params["sign"] = sign
# 發(fā)送請(qǐng)求
try:
response = requests.get(url, params=params, timeout=10)
data = response.json()
if "error_response" in data:
print(f"API Error: {data['error_response']['msg']}")
break
current_items = data["items_onsale_get_response"]["items"]["item"]
items.extend(current_items)
# 檢查是否還有下一頁
total = data["items_onsale_get_response"]["total_results"]
if len(items) >= total:
break
page += 1
except Exception as e:
print(f"Request Error: {e}")
break
return items
if __name__ == "__main__":
result = get_shop_items()
if result:
print(f"共獲取{len(result)}件商品:")
for item in result[:3]: # 打印前3條示例
print(f"商品ID: {item['num_iid']}, 標(biāo)題: {item['title']}, 價(jià)格: {item['price']}")
四、注意事項(xiàng)
- 權(quán)限與頻率: 需申請(qǐng)taobao.items.onsale.get接口權(quán)限。 調(diào)用頻率限制為100次/分鐘,建議添加延遲(如time.sleep(1))。
- 字段擴(kuò)展: 通過fields參數(shù)可獲取更多字段(如desc商品描述、sales銷量)等。
- 異常處理: 添加重試機(jī)制(如 3 次重試)和錯(cuò)誤日志記錄。 處理網(wǎng)絡(luò)超時(shí)、簽名錯(cuò)誤(40007)等問題。
- 數(shù)據(jù)安全: 敏感信息(如App Secret)需加密存儲(chǔ),避免泄露。
五、擴(kuò)展應(yīng)用
- 結(jié)合商品詳情接口:通過
taobao.item.get
接口,傳入num_iid
獲取單個(gè)商品的詳細(xì)信息(如庫存、SKU)。 - 數(shù)據(jù)分析:將獲取的商品數(shù)據(jù)存入數(shù)據(jù)庫,進(jìn)行銷量趨勢(shì)分析、價(jià)格監(jiān)控等。
通過以上方法,可高效獲取淘寶店鋪全量商品數(shù)據(jù),滿足業(yè)務(wù)需求。