问答
知道微博 UID,怎么拿到粉丝数和账号资料?
简短回答
把数字 UID 传给微博账号信息接口(/v1/weibo/users/get),就能拿到粉丝数、关注数、微博数、认证、昵称和简介,每个账号 $0.002。500 个账号刷新一遍共 $1.00;加 view=full 还能拿到认证说明和主页上显示的 IP 属地。
代理商甩过来一张表,里面是去年合作过的 500 个微博博主,每人一个 UID。客户要求续约之前先看一眼现在的粉丝数。一个个点开主页,得花一整天;用微博账号信息写个循环,几分钟跑完,留下一份干净的 CSV。
返回哪些字段
| 字段 | 含义 |
|---|---|
name、bio |
昵称和简介 |
followers、following |
粉丝数和关注数,以微博给出的为准 |
posts |
账号的微博总数 |
verified |
有没有认证标识 |
ext.verified_reason |
认证说明,比如职位或公司名(需要 view=full) |
ext.ip_location |
主页上显示的 IP 属地(需要 view=full) |
ext.location、ext.gender |
主页上填写的所在地和性别(需要 view=full) |
累计获赞数拿不到,返回 null,并写在 meta.unavailable 里。
UID 从哪来
这个接口只认数字 UID,不认链接,也不认昵称。主页地址形如 weibo.com/u/1234567890 的,那串数字就是 UID。用了个性域名的账号要多一步:用微博搜索搜一条他发过的微博,读结果里的 author.id。
费用
| 账号数 | 调用次数 | 费用 |
|---|---|---|
| 1 | 1 | $0.002 |
| 50 | 50 | $0.10 |
| 500 个,每月刷新一次,持续一年 | 6,000 | $12.00 |
已注销或被封的账号返回 not_found,不扣费。
批量查询
import csv, os, requests
URL = "https://api.okdata.online/v1/weibo/users/get"
KEY = os.environ["OKDATA_API_KEY"]
MONTH = "2026-11"
with open("uids.txt") as f, open("profiles.csv", "w", newline="", encoding="utf-8") as out:
w = csv.writer(out)
w.writerow(["uid", "name", "followers", "following", "posts", "verified", "reason", "ip"])
for uid in (line.strip() for line in f if line.strip()):
r = requests.get(URL, params={"id": uid, "view": "full"}, timeout=30, headers={
"Authorization": f"Bearer {KEY}",
"Idempotency-Key": f"wb-profile-{uid}-{MONTH}",
}).json()
if r["code"] != "ok":
w.writerow([uid, r["code"]]); continue
a = r["data"]["item"]
w.writerow([uid, a["name"], a["followers"], a["following"], a["posts"],
a["verified"], a["ext"].get("verified_reason"), a["ext"].get("ip_location")])
幂等键里带了月份,脚本中途崩了重跑,已经查过的账号直接回放结果,不会重复扣费。
容易忽略的地方
- 接口目录里没有微博账号的微博列表,所以没法在这里拉某个博主最近发了什么。提到他的微博、或者他在某个关键词下发的内容,可以通过搜索找到。
- 粉丝数里包含不活跃的粉丝和买来的粉丝。花钱买曝光之前,拿它和博主微博的点赞、转发对比一下。
- 只返回公开的主页数据,需要登录才能看的内容一概没有。
其他选择
微博官方的广告投放平台能看到接商单博主的粉丝画像,这是这个接口做不到的;代理商的达人数据库也能看,按订阅收费。账号不到 20 个的话,直接点开主页看比写代码快。从找博主到筛博主的完整流程,见达人发现方案。
更新于