问答
做一个社媒舆情监测,每个月大概要花多少钱?
简短回答
在 okdata 上做一个常见的品牌监测:10 个关键词,每天早晚各查一次,微博、小红书、抖音、X 每次各查一页,一个月 2400 次调用,费用 $28.80。再加上每小时存一次微博热搜,多 $1.44。没有月费,账单就是调用次数乘以各接口单价。
设想一个消费品牌,每天中午前想知道昨晚到今早大家在说什么:品牌名、两条产品线,再加七个竞品词,一共 10 个关键词,早晚各查一次,覆盖四个平台。下面算一个月要花多少,以及哪些设置最影响总价。
基础方案
10 个关键词 × 每天 2 次 × 30 天 = 每个平台 600 次调用,每次查一页。
| 平台 | 接口 | 每次 | 每月次数 | 月费用 |
|---|---|---|---|---|
| 微博 | 微博搜索 | $0.002 | 600 | $1.20 |
| 小红书 | 小红书笔记搜索 | $0.02 | 600 | $12.00 |
| 抖音 | 抖音视频搜索 | $0.02 | 600 | $12.00 |
| X | X 帖子搜索 | $0.006 | 600 | $3.60 |
| 微博热搜,每小时一次 | 微博热搜 | $0.002 | 720 | $1.44 |
想先小规模试,5 个关键词、每天一次、只看微博和小红书,一个月 {{cost:weibo.posts.search150+xiaohongshu.notes.search150}}。
按影响大小排的几个旋钮
- 平台。 各平台单价不同,加一个或减一个平台,对总价的影响最大。
- 频率。 从每天两次改成每小时一次,调用量翻 12 倍。大多数品牌只在新品上市或出事的那几天才需要按小时查。
- 每次翻几页。 冷门词一页就够;热门词两次检查之间冒出来的内容可能超过一页,不往后翻就会漏。
- 关键词数量。 线性增长,20 个词就是 10 个词的两倍。
翻到上次看过的就停
import os, requests
URL = "https://api.okdata.online/v1/weibo/posts/search"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
def new_posts(keyword, seen_ids, max_pages=3):
fresh, cursor = [], None
for _ in range(max_pages):
params = {"query": keyword, "sort": "latest", **({"cursor": cursor} if cursor else {})}
body = requests.get(URL, headers=H, params=params, timeout=60).json()
if body["code"] != "ok":
raise RuntimeError(f"{body['code']}: {body['message']}")
items = body["data"]["items"]
fresh += [p for p in items if p["id"] not in seen_ids]
if any(p["id"] in seen_ids for p in items) or not body["page"]["has_more"]:
break # 已经接上上一次的内容,不再付费翻页
cursor = body["page"]["next_cursor"]
return fresh
和其他方案比
订阅制的舆情系统自带看板、预警和情感分析,团队里没人写脚本的话,买它更省心。用开源爬虫自建几乎没有调用费,但看看这个用 twscrape 监测 1400 个 X 账号的讨论就知道,账号轮换和频率限制要花多少精力。拿到内容后怎么整理成每周简报,可以看口碑研究;最新价格在价格页。
更新于