问答

做一个社媒舆情监测,每个月大概要花多少钱?

简短回答

在 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}}。

按影响大小排的几个旋钮

  1. 平台。 各平台单价不同,加一个或减一个平台,对总价的影响最大。
  2. 频率。 从每天两次改成每小时一次,调用量翻 12 倍。大多数品牌只在新品上市或出事的那几天才需要按小时查。
  3. 每次翻几页。 冷门词一页就够;热门词两次检查之间冒出来的内容可能超过一页,不往后翻就会漏。
  4. 关键词数量。 线性增长,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 账号的讨论就知道,账号轮换和频率限制要花多少精力。拿到内容后怎么整理成每周简报,可以看口碑研究;最新价格在价格页。

更新于