?
引言 在電商數(shù)據(jù)分析和比價應用中,獲取可靠的商品列表信息是關鍵。識貨平臺作為一個知名的導購社區(qū),其提供的搜索接口是開發(fā)者獲取熱門商品數(shù)據(jù)的重要途徑。本文將詳細解析如何調(diào)用識貨的列表搜索API,包括接口地址、參數(shù)傳遞、簽名驗證以及響應處理,并提供完整的Python示例代碼。
一、接口基本信息
通過分析網(wǎng)絡請求,典型的識貨列表搜索API路徑可能為:
https://api.shihuo.com/search/list

該接口通常采用HTTPS協(xié)議和GET請求方法。
二、核心請求參數(shù)
調(diào)用接口需構造包含以下關鍵參數(shù)的URL:
關鍵詞參數(shù)
keyword: 搜索關鍵詞(如"跑鞋"),需進行URL編碼。
分頁參數(shù)
page: 當前頁碼(從1開始)
pageSize: 每頁數(shù)據(jù)量(通常為20)
排序參數(shù)
sort: 排序方式(例如"hot"表示按熱度排序)
安全驗證參數(shù)
timestamp: 當前時間戳(精確到秒)
sign: 請求簽名(用于防篡改,需按平臺規(guī)則生成)
簽名生成邏輯示例
簽名通常通過對參數(shù)按字典序排序后拼接密鑰計算MD5:
import hashlib def generate_sign(params, secret_key): sorted_params = sorted(params.items()) raw_str = '&'.join([f'{k}={v}' for k, v in sorted_params]) sign_str = raw_str + secret_key return hashlib.md5(sign_str.encode()).hexdigest()

三、請求頭設置
需在HTTP Header中設置以下字段:
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...", "Referer": "https://www.shihuo.com/", "X-Requested-With": "XMLHttpRequest" }

四、處理API響應
成功調(diào)用將返回JSON格式數(shù)據(jù),典型結構如下:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"itemId": "123456",
"title": "Nike Air Zoom Pegasus 38",
"price": "599.00",
"imageUrl": "https://img.shihuo.com/.../sample.jpg"
},
... // 其他商品項
],
"totalCount": 150
}
}

關鍵字段說明:
code=200 表示請求成功
data.list 包含商品對象數(shù)組
data.totalCount 為總結果數(shù)
五、Python完整調(diào)用示例
import requests
import time
import hashlib
from urllib.parse import quote
# 基礎配置
API_URL = "https://api.shihuo.com/search/list"
SECRET_KEY = "your_secret_key" # 需向平臺申請
def search_shihuo(keyword, page=1, page_size=20):
# 構造基礎參數(shù)
params = {
"keyword": quote(keyword),
"page": page,
"pageSize": page_size,
"sort": "hot",
"timestamp": int(time.time())
}
# 生成簽名
params["sign"] = generate_sign(params, SECRET_KEY)
# 發(fā)送請求
resp = requests.get(API_URL, params=params, headers=headers)
if resp.status_code == 200:
data = resp.json()
if data["code"] == 200:
return data["data"]
else:
print(f"API錯誤: {data['message']}")
return None
# 示例調(diào)用
result = search_shihuo("籃球鞋")
if result:
print(f"共找到 {result['totalCount']} 條結果")
for item in result["list"]:
print(f"商品ID: {item['itemId']}, 名稱: {item['title']}, 價格: {item['price']}")

六、注意事項
密鑰安全
切勿在前端代碼中暴露SECRET_KEY,應通過服務端中轉(zhuǎn)調(diào)用。
頻率限制
注意接口的請求頻率限制(如QPS),避免觸發(fā)風控。
數(shù)據(jù)更新
商品價格和庫存具有時效性,需定期更新數(shù)據(jù)。
版本兼容
關注API版本變更公告,及時調(diào)整參數(shù)結構。
結語
通過本文的詳細解析,開發(fā)者可以快速集成識貨商品搜索能力到自己的應用中。在實際使用時,請務必遵守平臺API使用協(xié)議,合理合法地獲取數(shù)據(jù)。對于返回數(shù)據(jù)的深度處理(如價格監(jiān)控、商品推薦等),可結合更多業(yè)務邏輯進一步擴展。
?審核編輯 黃宇
-
API
+關注
關注
2文章
2380瀏覽量
66813
發(fā)布評論請先 登錄
使用dp123電天下平臺的獲取電天下列表搜索數(shù)據(jù)API接口
通過西門子平臺API獲取搜索列表數(shù)據(jù)的技術實踐
???????使用 DMM Web API 獲取搜索列表數(shù)據(jù)
調(diào)用DMM平臺API獲取商品詳情數(shù)據(jù)的技術實踐
如何從Target平臺獲取搜索列表數(shù)據(jù)的API接口
調(diào)用1688開放平臺商品分類API獲取分類數(shù)據(jù)
調(diào)用西門子平臺 API 獲取 xmz 搜索列表數(shù)據(jù)
亞馬遜平臺根據(jù)關鍵字搜索商品API接口
深入解析:調(diào)用識貨平臺列表搜索API獲取商品數(shù)據(jù)
評論