一、接口獲取與權(quán)限申請(qǐng)
- 注冊(cè)與認(rèn)證 訪(fǎng)問(wèn)小紅書(shū)開(kāi)放平臺(tái)/萬(wàn)邦開(kāi)放平臺(tái),注冊(cè)開(kāi)發(fā)者賬號(hào)并完成企業(yè)認(rèn)證。 在控制臺(tái)創(chuàng)建應(yīng)用,選擇“商品搜索”相關(guān)接口權(quán)限(如item_search),提交申請(qǐng)并等待審核。
- 獲取憑證 審核通過(guò)后,在應(yīng)用詳情頁(yè)獲取app_key(API密鑰)和app_secret(加密密鑰)。
二、接口調(diào)用方式
請(qǐng)求地址
bash
GET https://api.xiaohongshu.com/v1/search/items
請(qǐng)求頭
json
{
"Content-Type": "application/json",
"Authorization": "Bearer {access_token}" # 需結(jié)合OAuth2.0獲取
}
必填參數(shù)
參數(shù)名 | 類(lèi)型 | 說(shuō)明 |
---|---|---|
keyword | String | 搜索關(guān)鍵詞(如“口紅”) |
page_no | Int | 頁(yè)碼(默認(rèn)1) |
page_size | Int | 每頁(yè)數(shù)量(默認(rèn)50,上限100) |
加密參數(shù)
參數(shù)名 | 類(lèi)型 | 說(shuō)明 |
---|---|---|
timestamp | Int | 當(dāng)前時(shí)間戳(秒) |
sign | String | 簽名(按規(guī)則生成) |
簽名生成規(guī)則
- 參數(shù)按字典序排序,拼接為字符串:
key1=value1&key2=value2...+app_secret
- 使用MD5加密后轉(zhuǎn)為大寫(xiě)。
三、請(qǐng)求示例(Python)
python
import requests
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]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
# 配置參數(shù)
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
keyword = "口紅"
page_no = 1
page_size = 10
params = {
"app_key": app_key,
"keyword": keyword,
"page_no": page_no,
"page_size": page_size,
"timestamp": int(time.time())
}
# 生成簽名
params["sign"] = generate_sign(params, app_secret)
# 發(fā)送請(qǐng)求
url = "https://api.xiaohongshu.com/v1/search/items"
response = requests.get(url, params=params)
# 處理響應(yīng)
if response.status_code == 200:
data = response.json()
if data.get("code") == 200:
for item in data["data"]["items"]:
print(f"商品ID: {item['item_id']}, 標(biāo)題: {item['title']}, 價(jià)格: ¥{item['price']}")
else:
print(f"API錯(cuò)誤: {data.get('message')}")
else:
print(f"請(qǐng)求失敗,狀態(tài)碼: {response.status_code}")
四、返回?cái)?shù)據(jù)結(jié)構(gòu)(JSON)
json
{
"code": 200,
"message": "success",
"data": {
"items": [
{
"item_id": "64f6f55d000000001d015a5a",
"title": "【新品】XX品牌絲絨口紅 持久不脫色",
"price": 199.00,
"images": [
"https://sns-img-qc.xhscdn.com/image1.jpg",
"https://sns-img-qc.xhscdn.com/image2.jpg"
],
"sales": 1200,
"shop": {
"shop_id": "987654321",
"name": "XX旗艦店",
"rating": 4.9
}
}
],
"pagination": {
"total": 150,
"page_no": 1,
"page_size": 10
}
}
}
五、注意事項(xiàng)
- 頻率限制 默認(rèn)每分鐘100次,超限需聯(lián)系平臺(tái)申請(qǐng)?zhí)犷~。
- 分頁(yè)處理 通過(guò)page_no和page_size遍歷全部結(jié)果,例如: arduino 體驗(yàn)AI代碼助手 代碼解讀復(fù)制代碼python for page in range(1, total_pages + 1): params["page_no"] = page # 發(fā)送請(qǐng)求...
- 數(shù)據(jù)合規(guī) 禁止爬取用戶(hù)隱私數(shù)據(jù)(如手機(jī)號(hào)、地址)。 遵守《網(wǎng)絡(luò)安全法》和《個(gè)人信息保護(hù)法》。
- 錯(cuò)誤排查 401錯(cuò)誤:檢查app_key或簽名是否正確。 404錯(cuò)誤:確認(rèn)接口地址無(wú)誤。 500錯(cuò)誤:稍后重試或聯(lián)系技術(shù)支持。
六、擴(kuò)展功能
- 篩選排序:部分接口支持按價(jià)格、銷(xiāo)量排序(需查閱文檔確認(rèn)參數(shù))。
- 類(lèi)目過(guò)濾:通過(guò)
category_id
指定商品類(lèi)目(如美妝、服飾)。
如需高級(jí)功能(如實(shí)時(shí)庫(kù)存查詢(xún)),需聯(lián)系小紅書(shū)商務(wù)團(tuán)隊(duì)定制接口。