91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

小紅書商品詳情簽名算法Python

鄧林 ? 來源:jf_63013664 ? 作者:jf_63013664 ? 2025-08-25 16:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

在電商開發(fā)的戰(zhàn)場(chǎng)上摸爬滾打多年,每一次對(duì)接新平臺(tái)的 API 都是一場(chǎng)硬仗。要說最讓人印象深刻的,小紅書商品詳情 API 接口的對(duì)接經(jīng)歷絕對(duì)能排上前三。從申請(qǐng)權(quán)限時(shí)的層層關(guān)卡,到數(shù)據(jù)抓取時(shí)的各種 “幺蛾子”,今天就掰開了揉碎了,把這段實(shí)戰(zhàn)經(jīng)歷和能用得上的代碼技巧全分享出來!

剛開始接觸小紅書商品詳情 API,天真地以為和其他平臺(tái)差不多,按文檔操作就能輕松拿到數(shù)據(jù)?,F(xiàn)實(shí)卻給我潑了一盆冷水 —— 小紅書的開發(fā)者平臺(tái)審核堪稱 “魔鬼級(jí)別”,不僅要詳細(xì)說明應(yīng)用用途、使用場(chǎng)景,還得提供完整的業(yè)務(wù)規(guī)劃。光是提交申請(qǐng)材料就反復(fù)修改了四五次,等了整整一周才收到通過通知。好不容易拿到了client_id和client_secret,簽名算法又成了攔路虎。小紅書采用的HMAC-SHA256加密方式,對(duì)參數(shù)順序、編碼格式要求極為嚴(yán)格,稍有差錯(cuò)就返回401 Unauthorized。那段時(shí)間對(duì)著文檔和官方示例代碼反復(fù)研究,終于啃出了簽名生成函數(shù):

python

運(yùn)行

import hashlib
import hmac
import time
import urllib.parse


def generate_signature(params, client_secret):
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    query_str = ""
    for k, v in sorted_params:
        if isinstance(v, list):
            v = ",".join(map(str, v))
        query_str += f"{k}{v}"
    sign_str = f"{client_secret}{query_str}{client_secret}"
    return hmac.new(
        client_secret.encode('utf-8'),
        sign_str.encode('utf-8'),
        hashlib.sha256
    ).hexdigest().upper()


# 使用示例
api_params = {
    "method": "xhs.product.detail.get",
    "client_id": "your_client_id",
    "product_id": "123456789",
    "timestamp": str(int(time.time()))
}
signed_params = generate_signature(api_params, "your_client_secret")
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

python返回結(jié)果

Result Object:
---------------------------------------
{
	"item": {
		"num_iid": "685d0fe3c16548001691655c",
		"title": "奶白釉面包貓卡通可愛陶瓷餐具碗碟家用一二人食碗盤飯盤子釉下彩 · 4.75寸新佩碗/奶白釉面包貓 無規(guī)格",
		"desc_short": "",
		"price": 11,
		"total_price": "",
		"suggestive_price": "",
		"orginal_price": 11,
		"nick": "喵植雜貨鋪的店",
		"num": 200,
		"min_num": 0,
		"detail_url": "https://www.xiaohongshu.com/goods-detail/685d0fe3c16548001691655c",
		"pic_url": "http://mall-i4.xhscdn.com/material_space/f6fbc3bd-443b-4f75-8909-fb5484dd3573?imageView2/2/w/1080/format/webp/q/80",
		"brand": null,
		"brandId": "",
		"rootCatId": "",
		"cid": "",
		"desc": "

", "desc_img": [ "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAMPzMAAEm5rCqx28321.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGuaAPYbFAAACCUoruo8524.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAKsBJAAEJtD_LhPA492.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAEq4yAAEqphMFR0Q944.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAZN9bAADD0K_mB48577.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGumAehmpAAFIujkshVM029.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGuqAKQqbAACbKgy43JM420.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAWdgEAADVfIZYMts530.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGuuALxojAAClLj4Tf1g651.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAEgOlAAEa0DFkQl4588.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGu6AXfL6AACdkVCaOuU203.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAVIU6AADNCMR78Sc685.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGu-APiIQAAEfXSap07E396.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WAMQ4qAACZ4hi2ARc880.jpg", "https://file1.elecfans.com//web3/M00/2B/7B/wKgZO2isG4WARxjNAACkHCZWawE467.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGvKAZtJNAACpbgm7md0264.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGvKAOUCTAAE8zK31p84679.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGvOAHp1fAACEGOjiWWg891.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGvSAIRjQAAC_Af5YwY4776.jpg", "https://file1.elecfans.com/web3/M00/2B/69/wKgZPGisGvWARpd5AADPgSo_rHk381.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGvaAa8WPAACys93Q9ts329.jpg", "https://file1.elecfans.com/web3/M00/2B/7B/wKgZO2isGvaAEiWaAACm4wmnEvM461.jpg" ], poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

解決了簽名問題,新的挑戰(zhàn)又接踵而至。小紅書對(duì) API 調(diào)用頻率限制嚴(yán)格,而且不同接口的限流規(guī)則還不一樣。為了避免觸發(fā)封禁,我用 Python 的asyncio庫結(jié)合隊(duì)列實(shí)現(xiàn)了異步請(qǐng)求和限流控制。比如設(shè)置每秒最多發(fā)起 10 次請(qǐng)求,超出部分自動(dòng)排隊(duì):

python

運(yùn)行

import asyncio
import ???????aiohttp


class RateLimiter:
    def __init__(self, rate_limit):
        self.semaphore = asyncio.Semaphore(rate_limit)

    async def limit(self):
        await self.semaphore.acquire()
        try:
            yield
        finally:
            self.semaphore.release()


async def fetch_product_detail(session, product_id, signed_params):
    async with RateLimiter(10).limit():
        url = "https://open.xiaohongshu.com/api/rest"
        params = {**signed_params, "product_id": product_id}
        async with session.get(url, params=params) as response:
            return await response.json()


async def main(product_ids, signed_params):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch_product_detail(session, pid, signed_params) for pid in product_ids]
        results = await asyncio.gather(*tasks)
        return results


# 示例調(diào)用
product_ids = ["123456789", "987654321"]
signed_params = {...}  # 已簽名參數(shù)
asyncio.run(main(product_ids, signed_params))

拿到數(shù)據(jù)后,才發(fā)現(xiàn)小紅書商品詳情的結(jié)構(gòu)遠(yuǎn)比想象中復(fù)雜。商品信息、用戶評(píng)價(jià)、關(guān)聯(lián)筆記、促銷活動(dòng)等數(shù)據(jù)嵌套多層,光是解析 JSON 就要費(fèi)不少功夫。而且小紅書會(huì)不定期調(diào)整接口返回字段,有次突然發(fā)現(xiàn)原本正常的 “商品規(guī)格” 字段消失了,害得我緊急排查了半天。后來學(xué)聰明了,寫了個(gè)通用的數(shù)據(jù)解析函數(shù),還加了字段缺失的容錯(cuò)處理:

python

運(yùn)行

def parse_product_data(raw_data):
    try:
        return {
            "product_name": raw_data.get("product_info", {}).get("name", ""),
            "price": raw_data.get("product_info", {}).get("price", 0),
            "sales_count": raw_data.get("product_info", {}).get("sales_count", 0),
            "user_rating": raw_data.get("evaluation_info", {}).get("score", 0),
            "main_image": raw_data.get("product_info", {}).get("main_image", "")
        }
    except KeyError as e:
        print(f"字段缺失: {e}")
        return {}


# 示例調(diào)用
raw_response = {...}  # API返回?cái)?shù)據(jù)
parsed_data = parse_product_data(raw_response)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

在開發(fā)一個(gè)小紅書商品比價(jià)工具時(shí),需要實(shí)時(shí)監(jiān)控商品價(jià)格變動(dòng)。最開始我采用輪詢的方式定時(shí)調(diào)用 API,結(jié)果不僅浪費(fèi)資源,還容易觸發(fā)限流。后來改用???????Webhook訂閱的方式,當(dāng)商品信息更新時(shí),小紅書主動(dòng)推送通知,大大提高了效率。雖然接入 Webhook 的過程也不輕松,要處理簽名驗(yàn)證、消息加密、重復(fù)消息過濾等問題,但最終實(shí)現(xiàn)的效果堪稱絲滑。

python

運(yùn)行

# 處理Webhook消息示例
import hmac
import hashlib
from flask import Flask, request, abort

app = Flask(__name__)
SECRET_KEY = "your_webhook_secret"


@app.route('/webhook', methods=['POST'])
def handle_webhook():
    signature = request.headers.get('X-Xhs-Signature')
    if not signature:
        abort(401)

    data = request.data
    local_signature = hmac.new(
        SECRET_KEY.encode('utf-8'),
        data,
        hashlib.sha256
    ).hexdigest()

    if signature != local_signature:
        abort(401)

    # 處理接收到的商品更新數(shù)據(jù)
    webhook_data = request.json
    # 業(yè)務(wù)邏輯處理...
    return "OK", 200


if __name__ == '__main__':
    app.run(debug=True)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

這些年在小紅書 API 開發(fā)上踩過的坑,都成了寶貴的經(jīng)驗(yàn)財(cái)富。每一次攻克難題,都像是解鎖了新技能。

?審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4784

    瀏覽量

    98044
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2371

    瀏覽量

    66764
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90029
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    1688 商品詳情 API 調(diào)用與數(shù)據(jù)解析 Python 實(shí)戰(zhàn)

    你想要的是 1688 商品詳情 API 的 Python 調(diào)用與數(shù)據(jù)解析實(shí)戰(zhàn)方案,核心是完成 API 憑證配置、接口請(qǐng)求(含簽名)、響應(yīng)數(shù)據(jù)解析、異常處理 的全流程落地,我會(huì)提供可直接
    的頭像 發(fā)表于 02-10 11:23 ?254次閱讀

    得物商品詳情API

    一、官方 API 接入核心信息 1. 接入前提 注冊(cè)并入駐得物開放平臺(tái)(https://open.dewu.com/),完成企業(yè)認(rèn)證與應(yīng)用創(chuàng)建 申請(qǐng)商品詳情查詢等接口權(quán)限,獲取appKey
    的頭像 發(fā)表于 01-27 14:08 ?238次閱讀

    1688商品詳情API完整指南

    一、摘要 1688商品詳情API是阿里巴巴旗下B2B平臺(tái)提供的重要數(shù)據(jù)接口,主要用于獲取商品的詳細(xì)信息。該接口支持獲取商品ID、商品標(biāo)題、
    的頭像 發(fā)表于 11-25 10:18 ?399次閱讀

    京東商品詳情價(jià)格監(jiān)控API完整教程

    一、摘要 京東商品詳情API是京東開放平臺(tái)提供的標(biāo)準(zhǔn)化接口,開發(fā)者可通過商品ID、SKU等參數(shù)獲取商品的詳細(xì)信息,包括價(jià)格、庫存、評(píng)價(jià)、規(guī)格參數(shù)等核心數(shù)據(jù)。 二、接口概述 請(qǐng)求方式:P
    的頭像 發(fā)表于 11-24 15:56 ?1125次閱讀

    京東商品詳情 ID(即 SKU ID)獲取商品詳細(xì)信息參數(shù)

    ? 利用京東商品詳情 ID(即 SKU ID)獲取商品詳細(xì)信息,可通過京東開放平臺(tái)官方 API 或非官方接口(逆向解析)實(shí)現(xiàn)。以下是兩種方式的示例展示,包含代碼實(shí)現(xiàn)與數(shù)據(jù)解析: 一、核心概念:京東
    的頭像 發(fā)表于 11-11 10:47 ?886次閱讀
    京東<b class='flag-5'>商品</b><b class='flag-5'>詳情</b> ID(即 SKU ID)獲取<b class='flag-5'>商品</b>詳細(xì)信息參數(shù)

    淘寶商品詳情API接口技術(shù)解析與實(shí)戰(zhàn)應(yīng)用

    出發(fā),系統(tǒng)解析淘寶商品詳情API接口的調(diào)用機(jī)制、數(shù)據(jù)結(jié)構(gòu)及典型應(yīng)用場(chǎng)景,并附上基于Python的完整調(diào)用示例,助力開發(fā)者高效集成商品數(shù)據(jù)服務(wù)。 關(guān)鍵詞 淘寶開放平臺(tái);
    的頭像 發(fā)表于 11-04 09:50 ?336次閱讀

    當(dāng)當(dāng)接口開發(fā)避坑指南:3 大痛點(diǎn) + 簽名模板,0 失敗接入商品詳情接口

    本文詳解當(dāng)當(dāng)商品詳情接口的接入難點(diǎn)與實(shí)戰(zhàn)方案,涵蓋認(rèn)證簽名、參數(shù)優(yōu)先級(jí)、數(shù)據(jù)解析等核心問題,提供Python代碼示例與緩存優(yōu)化策略,助力開發(fā)者快速穩(wěn)定調(diào)用接口,避開90%常見坑。
    的頭像 發(fā)表于 10-23 13:31 ?259次閱讀

    搜索商品ID獲取商品詳情接口

    ? ?在電商平臺(tái)或庫存管理系統(tǒng)中,通過商品ID快速搜索并獲取商品詳情是一項(xiàng)核心功能。該接口允許用戶或應(yīng)用程序輸入唯一的商品標(biāo)識(shí)符(ID),返回結(jié)構(gòu)化數(shù)據(jù)如名稱、價(jià)格、庫存等。本文將逐步
    的頭像 發(fā)表于 10-20 15:46 ?599次閱讀
    搜索<b class='flag-5'>商品</b>ID獲取<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>接口

    淘寶商品詳情接口(item_get)企業(yè)級(jí)全解析:參數(shù)配置、簽名機(jī)制與 Python 代碼實(shí)戰(zhàn)

    本文詳解淘寶開放平臺(tái)taobao.item_get接口對(duì)接全流程,涵蓋參數(shù)配置、MD5簽名生成、Python企業(yè)級(jí)代碼實(shí)現(xiàn)及高頻問題排查,提供可落地的實(shí)戰(zhàn)方案,助你高效穩(wěn)定獲取商品數(shù)據(jù)。
    的頭像 發(fā)表于 09-26 09:13 ?838次閱讀
    淘寶<b class='flag-5'>商品</b><b class='flag-5'>詳情</b>接口(item_get)企業(yè)級(jí)全解析:參數(shù)配置、<b class='flag-5'>簽名</b>機(jī)制與 <b class='flag-5'>Python</b> 代碼實(shí)戰(zhàn)

    愛回收商品詳情接口全方位對(duì)接指南:從認(rèn)證機(jī)制到數(shù)據(jù)提取最佳實(shí)踐(附 Python 代碼 + 成色數(shù)據(jù)處理)

    本文詳解愛回收二手?jǐn)?shù)碼商品詳情接口對(duì)接,涵蓋認(rèn)證、簽名生成、成色映射、估價(jià)緩存等核心環(huán)節(jié),提供可復(fù)用代碼與避坑指南,解決簽名失敗、數(shù)據(jù)延遲等常見問題。
    的頭像 發(fā)表于 09-25 10:33 ?868次閱讀

    VVIC 平臺(tái)商品詳情接口高效調(diào)用方案:從簽名驗(yàn)證到數(shù)據(jù)解析全流程

    本文詳解VVIC平臺(tái)商品詳情接口調(diào)用全流程,涵蓋參數(shù)配置、簽名生成、異常處理與數(shù)據(jù)解析,提供可復(fù)用的Python代碼及避坑指南,助力開發(fā)者高效實(shí)現(xiàn)安全、穩(wěn)定的數(shù)據(jù)對(duì)接。
    的頭像 發(fā)表于 09-23 10:28 ?685次閱讀

    淘寶商品詳情 API 實(shí)戰(zhàn):5 大策略提升店鋪轉(zhuǎn)化率(附簽名優(yōu)化代碼 + 避坑指南)

    ”“差評(píng)失控” 等轉(zhuǎn)化率殺手。本文結(jié)合我對(duì)接 300 + 淘寶店鋪的實(shí)戰(zhàn)經(jīng)驗(yàn),拆解 API 如何落地到動(dòng)態(tài)定價(jià)、庫存預(yù)警等 5 大場(chǎng)景,代碼做了簽名優(yōu)化和錯(cuò)誤處理,新手也能直接復(fù)用,避開 90% 的調(diào)用坑。 一、淘寶商品詳情 A
    的頭像 發(fā)表于 09-15 10:53 ?986次閱讀

    小紅書:通過商品標(biāo)簽API自動(dòng)生成內(nèi)容標(biāo)簽,優(yōu)化社區(qū)推薦算法

    ? ?小紅書作為領(lǐng)先的社交電商平臺(tái),用戶生成內(nèi)容(UGC)是其核心驅(qū)動(dòng)力。隨著商品數(shù)量和用戶互動(dòng)激增,傳統(tǒng)推薦算法面臨效率瓶頸。本文探討小紅書如何利用
    的頭像 發(fā)表于 09-10 16:46 ?975次閱讀
    <b class='flag-5'>小紅</b>書:通過<b class='flag-5'>商品</b>標(biāo)簽API自動(dòng)生成內(nèi)容標(biāo)簽,優(yōu)化社區(qū)推薦<b class='flag-5'>算法</b>

    借助小紅書電商 API,小紅書店鋪商品搜索曝光率提升

    在競(jìng)爭(zhēng)激烈的小紅書電商生態(tài)中,商品搜索曝光率直接決定了店鋪的流量與轉(zhuǎn)化。通過合理運(yùn)用 小紅書開放平臺(tái)提供的電商 API ,商家可系統(tǒng)性優(yōu)化商品展示策略,實(shí)現(xiàn)曝光量級(jí)躍升。以下是關(guān)鍵實(shí)施
    的頭像 發(fā)表于 08-28 15:41 ?710次閱讀

    利用小紅書電商 API 接口,實(shí)現(xiàn)小紅書店鋪商品推薦個(gè)性化

    ? 在當(dāng)今電商競(jìng)爭(zhēng)激烈的環(huán)境下,個(gè)性化商品推薦已成為提升用戶體驗(yàn)和轉(zhuǎn)化率的關(guān)鍵策略。小紅書(Xiaohongshu)作為領(lǐng)先的社交電商平臺(tái),提供了強(qiáng)大的電商 API 接口,允許開發(fā)者訪問用戶數(shù)
    的頭像 發(fā)表于 08-27 15:31 ?1055次閱讀
    利用<b class='flag-5'>小紅</b>書電商 API 接口,實(shí)現(xiàn)<b class='flag-5'>小紅</b>書店鋪<b class='flag-5'>商品</b>推薦個(gè)性化