问答

怎么找某个领域的微博博主(KOL)?

简短回答

用微博搜索搜几个领域关键词,把结果按作者归组,按发帖次数和互动量给作者排序,再用微博账号信息接口查排名靠前的账号。20 页搜索加 50 个账号资料,共 $0.14。

一个户外装备品牌想在微博上找 30 个真正写露营、徒步的博主,而不是偶尔晒过一张帐篷照的明星。最有用的信号是行为:谁一直在这个话题下发内容,谁的微博有人转。搜索结果恰好能给出这些,因为每条微博都带着作者。

三步走

  1. 搜领域词。 用微博搜索搜四五个关键词,比如露营装备、徒步路线、户外测评。sort=hot 找出已经有影响力的账号,sort=latest 能捞到规模小但很活跃的博主。
  2. 给作者排序。 按 author.id 归组,数每个作者出现了几条,再把转发和点赞加起来。搜索结果里本来就带着作者的粉丝数和认证状态。
  3. 核实候选。 对排名前 50 的账号调用微博账号信息,加 view=full,看简介、微博总数、认证说明(比如职业或者持证户外领队)和 IP 属地。

费用

步骤 调用次数 费用
5 个关键词 × 2 种排序 × 2 页 20 $0.04
前 50 名的账号资料 50 $0.10
整轮合计 70 {{cost:weibo.posts.search20+weibo.users.get50}}

代码

import os, requests
from collections import defaultdict

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def call(path, **p):
    r = requests.get(API + path, headers=H, params=p, timeout=30).json()
    if r["code"] != "ok":
        raise RuntimeError(f"{r['code']}: {r['message']}")
    return r["data"]

authors = defaultdict(lambda: {"posts": 0, "engagement": 0, "name": None, "followers": None})
for kw in ["露营装备", "徒步路线", "户外测评", "轻量化徒步", "露营地推荐"]:
    for sort in ("hot", "latest"):
        for p in call("/v1/weibo/posts/search", query=kw, sort=sort)["items"]:
            a = authors[p["author"]["id"]]
            a["posts"] += 1
            a["engagement"] += (p["metrics"]["reposts"] or 0) + (p["metrics"]["likes"] or 0)
            a["name"], a["followers"] = p["author"]["name"], p["author"]["followers"]

top = sorted(authors.items(), key=lambda kv: (kv[1]["posts"], kv[1]["engagement"]), reverse=True)[:50]
for uid, a in top:
    prof = call("/v1/weibo/users/get", id=uid, view="full")["item"]
    print(a["name"], a["posts"], a["engagement"], prof["followers"], prof["ext"].get("verified_reason"))

示例里每个关键词、每种排序只取一页;想挖得更深,加一个 cursor 翻页循环即可。

这套方法看不到的

  • 粉丝画像、报价、过往合作品牌都不是公开数据,这里没有。
  • 接口目录里没有微博账号的微博列表。你看到的是博主命中关键词的那些微博,不是他的全部动态。
  • 粉丝很多、互动很少,往往意味着僵尸粉或买来的粉。按单条互动来筛更靠谱。

其他途径

微博官方的博主商单平台能看到粉丝画像,也负责签约和结算,适合已经准备好花钱投放的品牌。代理商手里有整理好的名单,收服务费。只要十来个人的话,在微博话题页里手动翻一翻也行。跨平台的版本见达人发现方案。

更新于