?
場景需求: 在開發(fā)電商ERP、數(shù)據(jù)采集工具或競品分析系統(tǒng)時,經(jīng)常需要獲取1688平臺上某個店鋪的全部商品信息(如標(biāo)題、價格、SKU、庫存等)。本文將介紹如何通過1688開放平臺提供的官方API實現(xiàn)這一功能。
一、核心接口:alibaba.product.getSellerProductList
這是1688開放平臺提供的用于獲取賣家商品列表的API。通過合理配置請求參數(shù)和分頁處理,即可獲取全量商品數(shù)據(jù)。
接口地址: https://api.1688.com/router/rest
請求方式: POST
數(shù)據(jù)格式: application/x-www-form-urlencoded
二、關(guān)鍵實現(xiàn)步驟
1. 準(zhǔn)備環(huán)境
注冊1688開放平臺賬號,創(chuàng)建應(yīng)用并獲取 appKey 和 appSecret。
引導(dǎo)賣家完成授權(quán),獲取店鋪的 access_token(需 seller_view 權(quán)限)。
2. 基礎(chǔ)請求參數(shù)
base_params = { 'method': 'alibaba.product.getSellerProductList', 'app_key': 'YOUR_APP_KEY', 'access_token': 'SELLER_ACCESS_TOKEN', 'timestamp': str(int(time.time() * 1000)), # 毫秒時間戳 'format': 'json', 'v': '2.0', 'sign_method': 'md5' }

3. 分頁控制參數(shù)
page_no: 當(dāng)前頁碼(從1開始)
page_size: 每頁條數(shù)(建議不超過50)
# 示例:請求第2頁,每頁30條
page_params = {
'page_no': 2,
'page_size': 30
}

4. 簽名生成
所有參數(shù)需按字母序排序后拼接,加上 appSecret 進(jìn)行MD5簽名:
def generate_sign(params, app_secret):
param_str = '&'.join([f'{k}{v}' for k, v in sorted(params.items())])
full_str = f'{app_secret}{param_str}{app_secret}'
return hashlib.md5(full_str.encode()).hexdigest().upper()

三、完整請求示例(Python)
import requests
import time
import hashlib
def fetch_all_products(app_key, app_secret, access_token, max_page=50):
all_products = []
page_no = 1
while page_no <= max_page:
# 1. 構(gòu)造基礎(chǔ)參數(shù)
params = {
'method': 'alibaba.product.getSellerProductList',
'app_key': app_key,
'access_token': access_token,
'timestamp': str(int(time.time() * 1000)),
'format': 'json',
'v': '2.0',
'sign_method': 'md5',
'page_no': page_no,
'page_size': 50
}
# 2. 生成簽名
params['sign'] = generate_sign(params, app_secret)
# 3. 發(fā)送請求
resp = requests.post('https://api.1688.com/router/rest', data=params)
data = resp.json()
# 4. 處理異常
if 'error' in data:
print(f"Error: {data['error']['msg']} (Code: {data['error']['code']})")
break
# 5. 存儲當(dāng)前頁商品
products = data['result']['productInfos']['productInfo']
all_products.extend(products)
# 6. 分頁終止判斷
if len(products) < params['page_size']:
break
page_no += 1
time.sleep(0.5) # 避免請求過頻
return all_products

四、響應(yīng)數(shù)據(jù)結(jié)構(gòu)解析
成功響應(yīng)示例:
{
"result": {
"productInfos": {
"productInfo": [
{
"productId": 1234567890,
"subject": "商品標(biāo)題",
"price": "99.00",
"unit": "件",
"status": "published"
},
// ... 其他商品
]
},
"totalCount": 120 // 店鋪商品總數(shù)
}
}

五、注意事項
頻率限制:單個應(yīng)用默認(rèn)每秒10次請求,需根據(jù) totalCount 控制分頁節(jié)奏。
字段覆蓋:若需獲取詳情(如描述、SKU),需二次調(diào)用 alibaba.product.get 接口。
授權(quán)有效期:access_token 有效期通常為30天,需實現(xiàn)刷新機(jī)制。
錯誤碼處理:
isv.missing-parameter: 參數(shù)缺失
isv.invalid-access-token: 令牌失效
isp.api-qps-limit: 請求超頻
六、優(yōu)化建議
異步抓取:使用生產(chǎn)者-消費(fèi)者模型提升采集效率。
本地緩存:存儲 productId 避免重復(fù)獲取詳情。
增量同步:通過 modify_stamp 參數(shù)僅拉取變更商品。
通過上述實現(xiàn),可穩(wěn)定獲取店鋪商品數(shù)據(jù)。建議詳細(xì)閱讀1688API文檔,根據(jù)業(yè)務(wù)需求擴(kuò)展字段處理邏輯。
審核編輯 黃宇
?
-
API
+關(guān)注
關(guān)注
2文章
2394瀏覽量
66848
發(fā)布評論請先 登錄
???????如何通過淘寶開放平臺API獲取指定店鋪的所有商品信息
使用拼多多開放平臺API根據(jù)商品ID獲取商品詳情
通過京東開放平臺API根據(jù)商品ID獲取商品詳情技術(shù)指南
調(diào)用1688開放平臺商品分類API獲取分類數(shù)據(jù)
1688商品列表API接口快速上手指南
1688搜索店鋪列表API使用指南
淘寶平臺獲取店鋪商品列表API接口實現(xiàn)詳解
如何通過1688開放平臺API獲取指定店鋪所有商品
評論