第03章:小红书达人投放数据雷达

第03章:小红书达人投放数据雷达

小红书每年的品牌投放金额已经超过千亿,但大多数品牌和MCN机构还在靠"感觉"选达人。你能给他们数据,他们就愿意付钱。


谁需要达人数据

MCN机构(多频道网络):签约了一批达人,需要持续监控:

  • 自家达人的粉丝增长趋势
  • 竞争对手MCN旗下达人的表现
  • 市场上哪些新兴达人值得签约

品牌投放方

  • 决定投哪个达人前,需要看历史笔记数据(互动率、涨粉速度)
  • 投放后,追踪投放效果

数据中介(你可以扮演的角色):

  • 整合以上两类用户的需求,提供定制数据服务
  • 对MCN:每周发送竞品达人监控报告
  • 对品牌:发布前出具达人质量评估报告

可以采集的公开数据

可以从小红书公开页面获取

  • 粉丝数量(公开可见)
  • 笔记数量
  • 历史笔记的点赞/评论/收藏数(公开可见)
  • 内容类目标签

需要额外计算的指标

  • 平均互动率 = 近10篇笔记的(点赞+评论+收藏)/ 粉丝数
  • 涨粉速度 = 本周粉丝 - 上周粉丝
  • 内容类目占比

技术实现思路

# xiaohongshu_radar.py

import requests
import json
import time
import sqlite3
from datetime import datetime, date

def get_user_basic_info(user_id: str) -> dict:
    """
    获取小红书用户基础信息
    注意:实际爬取需要处理登录态和反爬,这里展示数据结构框架
    """
    # 实际需要:登录Cookie、处理签名验证
    # 以下为数据结构示例
    return {
        "user_id": user_id,
        "nickname": "达人昵称",
        "followers": 150000,
        "following": 320,
        "notes_count": 186,
        "fetch_date": str(date.today())
    }


def get_recent_notes(user_id: str, limit: int = 20) -> list:
    """
    获取用户最近的笔记数据
    返回每篇笔记的:标题、点赞、评论、收藏、发布时间
    """
    # 数据结构示例
    return [
        {
            "note_id": "xxx",
            "title": "笔记标题",
            "likes": 3200,
            "comments": 145,
            "saves": 890,
            "publish_date": "2024-01-15",
            "tags": ["护肤", "美妆"]
        }
        # ... 更多笔记
    ]


def calculate_engagement_rate(notes: list, followers: int) -> float:
    """计算平均互动率"""
    if not notes or followers == 0:
        return 0.0
    
    total_engagement = sum(
        note["likes"] + note["comments"] + note["saves"]
        for note in notes
    )
    avg_engagement = total_engagement / len(notes)
    return round(avg_engagement / followers * 100, 2)


def init_db():
    conn = sqlite3.connect("xhs_radar.db")
    
    conn.execute("""
        CREATE TABLE IF NOT EXISTS influencer_snapshots (
            id INTEGER PRIMARY KEY AUTOINCREMENT,
            user_id TEXT NOT NULL,
            nickname TEXT,
            followers INTEGER,
            notes_count INTEGER,
            avg_engagement_rate REAL,
            snapshot_date TEXT,
            UNIQUE(user_id, snapshot_date)
        )
    """)
    
    conn.execute("""
        CREATE TABLE IF NOT EXISTS tracked_influencers (
            user_id TEXT PRIMARY KEY,
            nickname TEXT,
            category TEXT,
            client_id TEXT,  -- 哪个客户在监控这个达人
            added_date TEXT
        )
    """)
    
    conn.commit()
    return conn


def generate_weekly_report(client_id: str, conn) -> str:
    """生成客户的达人周报"""
    cursor = conn.cursor()
    
    # 获取该客户追踪的达人
    cursor.execute(
        "SELECT user_id, nickname FROM tracked_influencers WHERE client_id = ?",
        (client_id,)
    )
    influencers = cursor.fetchall()
    
    report_lines = [f"## 达人数据周报 - {date.today()}\n"]
    
    for user_id, nickname in influencers:
        # 获取本周和上周的数据
        cursor.execute("""
            SELECT followers, avg_engagement_rate, snapshot_date
            FROM influencer_snapshots
            WHERE user_id = ?
            ORDER BY snapshot_date DESC
            LIMIT 2
        """, (user_id,))
        
        snapshots = cursor.fetchall()
        if len(snapshots) >= 2:
            this_week = snapshots[0]
            last_week = snapshots[1]
            
            follower_change = this_week[0] - last_week[0]
            trend = "↑" if follower_change > 0 else "↓"
            
            report_lines.append(
                f"**{nickname}**\n"
                f"粉丝:{this_week[0]:,}({trend}{abs(follower_change):,})\n"
                f"互动率:{this_week[1]}%\n"
            )
    
    return "\n".join(report_lines)

定价方案

服务 目标客户 价格
基础达人监控(最多10人,周报) 小MCN ¥500/月
标准监控(最多50人,周报+异常提醒) 中型MCN/品牌 ¥1500/月
投放前达人质量报告 品牌方 ¥300/份
定制分析(竞品达人深度分析) 大MCN ¥5000/次

本章小结

  • 小红书达人数据雷达,面向MCN机构和品牌投放方
  • 核心价值:把分散的公开数据整合成可以行动的周报
  • 数据采集注意:需要处理登录态和反爬,技术复杂度中等

→ 第04章:政策补贴自动匹配系统