在電商運營和數(shù)據(jù)分析中,獲取 1688 平臺的商品信息是一項關(guān)鍵任務(wù)。1688 作為國內(nèi)領(lǐng)先的 B2B 電商平臺,提供了豐富的商品數(shù)據(jù)和強大的開放平臺 API 接口,方便開發(fā)者獲取商品詳情、評論、SKU 等信息。本文將詳細(xì)介紹如何通過 1688 開放平臺 API 獲取商品信息,并提供完整的 Python 示例代碼。
一、準(zhǔn)備工作
(一)注冊 1688 開放平臺賬號
- 訪問 1688 開放平臺官網(wǎng),點擊“注冊”按鈕,填寫相關(guān)信息(如企業(yè)信息、聯(lián)系方式等)完成注冊。
- 登錄開放平臺控制臺,創(chuàng)建一個新的應(yīng)用,獲取應(yīng)用的 App Key 和 App Secret,這些憑證將用于后續(xù)的 API 調(diào)用。
(二)申請接口權(quán)限
在開放平臺控制臺中,找到已創(chuàng)建的應(yīng)用,然后在接口列表中申請所需接口的權(quán)限。例如,獲取商品詳情可以申請 alibaba.product.get 接口權(quán)限。
(三)安裝必要的 Python 庫
安裝以下 Python 庫,用于發(fā)送 HTTP 請求和處理數(shù)據(jù):
bash
pip install requests
二、獲取商品詳情信息
(一)構(gòu)建請求參數(shù)
1688 商品詳情接口(alibaba.product.get)需要以下參數(shù):
- method:接口方法名,如 alibaba.product.get。
- app_key:應(yīng)用的 App Key。
- product_id:商品 ID,可以通過商品詳情頁的 URL 獲取。
- timestamp:當(dāng)前時間的時間戳(13 位 Unix 時間)。
- sign:簽名,用于驗證請求的合法性。
(二)生成簽名
簽名的生成規(guī)則如下:
- 將除 sign 外的參數(shù)按字母升序排列。
- 拼接鍵值對為字符串,末尾追加 App Secret。
- 使用 MD5 哈希并轉(zhuǎn)為大寫。
- 以下是 Python 示例代碼:
Python
import hashlib
import time
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = "&".join([f"{k}{v}" for k, v in sorted_params if k != "sign"])
sign = hashlib.md5((sign_str + app_secret).encode('utf-8')).hexdigest().upper()
return sign
(三)發(fā)送請求并解析響應(yīng)
以下是一個完整的 Python 示例代碼,展示如何調(diào)用 1688 商品詳情接口:
Python
import requests
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
product_id = "123456789" # 替換為實際的商品 ID
params = {
"method": "alibaba.product.get",
"app_key": app_key,
"product_id": product_id,
"timestamp": str(int(time.time() * 1000)),
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get("https://gw.open.1688.com/openapi/param2/2/portals.open/api/", params=params)
data = response.json()
if data["code"] == "0":
product_info = data["result"]["productInfo"]
print(f"商品標(biāo)題:{product_info['subject']}")
print(f"批發(fā)價格區(qū)間:{product_info['priceRange']}")
print(f"最小起訂量:{product_info['moq']}")
print("SKU 詳情:")
for sku in product_info["skuList"]:
print(f"規(guī)格:{sku['spec']} | 庫存:{sku['stock']} | 價格:{sku['price']}")
else:
print(f"請求失敗,錯誤信息:{data['message']}")
(四)分頁數(shù)據(jù)抓取
如果需要獲取店鋪全量商品數(shù)據(jù),可以使用 alibaba.trade.product.search4trade 接口,并通過分頁機制循環(huán)獲?。?/p>
Python復(fù)制
def fetch_all_products(seller_member_id, app_key, app_secret):
page_no = 1
all_products = []
while True:
params = {
"method": "alibaba.trade.product.search4trade",
"app_key": app_key,
"seller_member_id": seller_member_id,
"page_no": page_no,
"page_size": 50,
"timestamp": str(int(time.time() * 1000)),
"format": "json",
"v": "2.0"
}
params["sign"] = generate_sign(params, app_secret)
response = requests.get("https://gw.open.1688.com/openapi/param2/2/portals.open/api/", params=params)
data = response.json()
products = data.get("result", {}).get("products", [])
if not products:
break
all_products.extend(products)
page_no += 1
return all_products
三、注意事項
(一)API 接口限制
1688 的 API 接口通常有調(diào)用頻率限制,需合理規(guī)劃請求頻率,避免被限制訪問。
(二)數(shù)據(jù)安全
妥善保管 App Key 和 App Secret,確保數(shù)據(jù)傳輸?shù)陌踩浴?/p>
(三)接口文檔
在使用 API 之前,建議仔細(xì)閱讀 1688 開放平臺的官方文檔,以獲取最準(zhǔn)確和最新的接口信息。
四、總結(jié)
通過上述步驟和代碼示例,你可以輕松地使用 Python 調(diào)用 1688 商品詳情接口,獲取商品的詳細(xì)信息。這些數(shù)據(jù)可以用于電商運營、市場分析、選品建議等場景。希望本文的介紹和示例代碼能夠幫助你快速上手并應(yīng)用到實際項目中。
如遇任何疑問或有進(jìn)一步的需求,請隨時與我私信或者評論聯(lián)系。