国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

?

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

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

python

運行

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返回結果

Result Object:
---------------------------------------
{
	"item": {
		"num_iid": "685d0fe3c16548001691655c",
		"title": "奶白釉面包貓卡通可愛陶瓷餐具碗碟家用一二人食碗盤飯盤子釉下彩 · 4.75寸新佩碗/奶白釉面包貓 無規格",
		"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

解決了簽名問題,新的挑戰又接踵而至。小紅書對 API 調用頻率限制嚴格,而且不同接口的限流規則還不一樣。為了避免觸發封禁,我用 Python 的asyncio庫結合隊列實現了異步請求和限流控制。比如設置每秒最多發起 10 次請求,超出部分自動排隊:

python

運行

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


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

拿到數據后,才發現小紅書商品詳情的結構遠比想象中復雜。商品信息、用戶評價、關聯筆記、促銷活動等數據嵌套多層,光是解析 JSON 就要費不少功夫。而且小紅書會不定期調整接口返回字段,有次突然發現原本正常的 “商品規格” 字段消失了,害得我緊急排查了半天。后來學聰明了,寫了個通用的數據解析函數,還加了字段缺失的容錯處理:

python

運行

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 {}


# 示例調用
raw_response = {...}  # API返回數據
parsed_data = parse_product_data(raw_response)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

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

python

運行

# 處理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)

    # 處理接收到的商品更新數據
    webhook_data = request.json
    # 業務邏輯處理...
    return "OK", 200


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

這些年在小紅書 API 開發上踩過的坑,都成了寶貴的經驗財富。每一次攻克難題,都像是解鎖了新技能。

?審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4784

    瀏覽量

    98042
  • API
    API
    +關注

    關注

    2

    文章

    2368

    瀏覽量

    66757
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    1688 商品詳情 API 調用與數據解析 Python 實戰

    你想要的是 1688 商品詳情 API 的 Python 調用與數據解析實戰方案,核心是完成 API 憑證配置、接口請求(含簽名)、響應數據解析、異常處理 的全流程落地,我會提供可直接
    的頭像 發表于 02-10 11:23 ?252次閱讀

    得物商品詳情API

    一、官方 API 接入核心信息 1. 接入前提 注冊并入駐得物開放平臺(https://open.dewu.com/),完成企業認證與應用創建 申請商品詳情查詢等接口權限,獲取appKey
    的頭像 發表于 01-27 14:08 ?236次閱讀

    1688商品詳情API完整指南

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

    京東商品詳情價格監控API完整教程

    一、摘要 京東商品詳情API是京東開放平臺提供的標準化接口,開發者可通過商品ID、SKU等參數獲取商品的詳細信息,包括價格、庫存、評價、規格參數等核心數據。 二、接口概述 請求方式:P
    的頭像 發表于 11-24 15:56 ?1123次閱讀

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

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

    淘寶商品詳情API接口技術解析與實戰應用

    出發,系統解析淘寶商品詳情API接口的調用機制、數據結構及典型應用場景,并附上基于Python的完整調用示例,助力開發者高效集成商品數據服務。 關鍵詞 淘寶開放平臺;
    的頭像 發表于 11-04 09:50 ?334次閱讀

    當當接口開發避坑指南:3 大痛點 + 簽名模板,0 失敗接入商品詳情接口

    本文詳解當當商品詳情接口的接入難點與實戰方案,涵蓋認證簽名、參數優先級、數據解析等核心問題,提供Python代碼示例與緩存優化策略,助力開發者快速穩定調用接口,避開90%常見坑。
    的頭像 發表于 10-23 13:31 ?256次閱讀

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

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

    淘寶商品詳情接口(item_get)企業級全解析:參數配置、簽名機制與 Python 代碼實戰

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

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

    本文詳解愛回收二手數碼商品詳情接口對接,涵蓋認證、簽名生成、成色映射、估價緩存等核心環節,提供可復用代碼與避坑指南,解決簽名失敗、數據延遲等常見問題。
    的頭像 發表于 09-25 10:33 ?865次閱讀

    VVIC 平臺商品詳情接口高效調用方案:從簽名驗證到數據解析全流程

    本文詳解VVIC平臺商品詳情接口調用全流程,涵蓋參數配置、簽名生成、異常處理與數據解析,提供可復用的Python代碼及避坑指南,助力開發者高效實現安全、穩定的數據對接。
    的頭像 發表于 09-23 10:28 ?684次閱讀

    淘寶商品詳情 API 實戰:5 大策略提升店鋪轉化率(附簽名優化代碼 + 避坑指南)

    ”“差評失控” 等轉化率殺手。本文結合我對接 300 + 淘寶店鋪的實戰經驗,拆解 API 如何落地到動態定價、庫存預警等 5 大場景,代碼做了簽名優化和錯誤處理,新手也能直接復用,避開 90% 的調用坑。 一、淘寶商品詳情 A
    的頭像 發表于 09-15 10:53 ?976次閱讀

    小紅書:通過商品標簽API自動生成內容標簽,優化社區推薦算法

    ? ?小紅書作為領先的社交電商平臺,用戶生成內容(UGC)是其核心驅動力。隨著商品數量和用戶互動激增,傳統推薦算法面臨效率瓶頸。本文探討小紅書如何利用
    的頭像 發表于 09-10 16:46 ?973次閱讀
    <b class='flag-5'>小紅</b>書:通過<b class='flag-5'>商品</b>標簽API自動生成內容標簽,優化社區推薦<b class='flag-5'>算法</b>

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

    在競爭激烈的小紅書電商生態中,商品搜索曝光率直接決定了店鋪的流量與轉化。通過合理運用 小紅書開放平臺提供的電商 API ,商家可系統性優化商品展示策略,實現曝光量級躍升。以下是關鍵實施
    的頭像 發表于 08-28 15:41 ?710次閱讀

    利用小紅書電商 API 接口,實現小紅書店鋪商品推薦個性化

    ? 在當今電商競爭激烈的環境下,個性化商品推薦已成為提升用戶體驗和轉化率的關鍵策略。小紅書(Xiaohongshu)作為領先的社交電商平臺,提供了強大的電商 API 接口,允許開發者訪問用戶數
    的頭像 發表于 08-27 15:31 ?1055次閱讀
    利用<b class='flag-5'>小紅</b>書電商 API 接口,實現<b class='flag-5'>小紅</b>書店鋪<b class='flag-5'>商品</b>推薦個性化