ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建 Reddit 监控代理
教程

如何构建 Reddit 监控代理

使用 Python 构建一个预定的 Reddit 监控代理,该代理会随着时间的推移区分搜索结果,并针对新品牌提及发出警报。使用 Scavio Reddit API。

获取免费API密钥API文档

品牌监控代理会监视 Reddit 上的关键字,并在出现新内容时告诉您。本教程展示了如何用大约 40 行 Python 代码构建一个:按计划搜索 Reddit,保留您看到的帖子 ID,并对新帖子发出警报。您可以将警报通道替换为 Slack、电子邮件或任何 Webhook。

前置条件

  • Python 3.8 或更高版本
  • 请求已安装库
  • Scavio API 密钥
  • 要监控的关键字(品牌名称、产品、竞争对手)

操作指南

步骤 1: 定义关键字和状态文件

保留一个包含您已经看到的帖子 ID 的小型 JSON 文件,这样重复运行就不会重新发出警报。

Python
KEYWORD = "your brand name"
STATE_FILE = "reddit_seen.json"

步骤 2: 获取新帖子

按新内容排序,偏向于最近的帖子。您还可以传递 subreddit 范围的查询,例如“r/startups yourbrand”。

Python
import os, requests

resp = requests.post(
    "https://api.scavio.dev/api/v1/reddit/search",
    headers={"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"},
    json={"query": KEYWORD, "sort": "new"},
    timeout=30,
)
posts = resp.json()["data"]["posts"]

步骤 3: 与状态文件的差异

加载之前看到的帖子 ID,计算增量,并将新 ID 视为警报。

Python
import json, pathlib

state = pathlib.Path(STATE_FILE)
seen = set(json.loads(state.read_text())) if state.exists() else set()

new_posts = [p for p in posts if p["id"] not in seen]
seen.update(p["id"] for p in posts)
state.write_text(json.dumps(list(seen)))

步骤 4: 发出警报

这里我们只是打印,但您可以在这里发布到 Slack webhook 或排队到您的作业系统中。

Python
for p in new_posts:
    print(f"NEW mention: r/{p['subreddit']} -- {p['title']}")
    print(f"  {p['url']}")

Python 示例

Python
import os, json, pathlib, requests

API_KEY = os.environ["SCAVIO_API_KEY"]
KEYWORD = os.environ.get("MONITOR_KEYWORD", "scavio")
STATE = pathlib.Path("reddit_seen.json")

def fetch(query: str):
    r = requests.post(
        "https://api.scavio.dev/api/v1/reddit/search",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={"query": query, "sort": "new"},
        timeout=30,
    )
    r.raise_for_status()
    return r.json()["data"]["posts"]

def load_state():
    if STATE.exists():
        return set(json.loads(STATE.read_text()))
    return set()

def save_state(ids):
    STATE.write_text(json.dumps(list(ids)))

def main():
    seen = load_state()
    posts = fetch(KEYWORD)
    new = [p for p in posts if p["id"] not in seen]
    for p in new:
        print(f"NEW r/{p['subreddit']}: {p['title']} ({p['url']})")
    save_state(seen | {p["id"] for p in posts})

if __name__ == "__main__":
    main()

JavaScript 示例

JavaScript
import fs from "node:fs";
const API_KEY = process.env.SCAVIO_API_KEY;
const KEYWORD = process.env.MONITOR_KEYWORD ?? "scavio";
const STATE = "reddit_seen.json";

async function fetchPosts(query) {
  const r = await fetch("https://api.scavio.dev/api/v1/reddit/search", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ query, sort: "new" }),
  });
  return (await r.json()).data.posts;
}

const seen = new Set(
  fs.existsSync(STATE) ? JSON.parse(fs.readFileSync(STATE, "utf8")) : []
);
const posts = await fetchPosts(KEYWORD);
const fresh = posts.filter((p) => !seen.has(p.id));
for (const p of fresh) {
  console.log(`NEW r/${p.subreddit}: ${p.title}`);
}
fs.writeFileSync(
  STATE,
  JSON.stringify([...seen, ...posts.map((p) => p.id)])
);

预期输出

JSON
NEW r/SaaS: Has anyone used scavio for Reddit search?
  https://www.reddit.com/r/SaaS/comments/1smxyz1/
NEW r/devtools: scavio vs serpapi for agent builders
  https://www.reddit.com/r/devtools/comments/1smxyz2/

相关教程

  • 如何通过 API 搜索 Reddit 帖子
  • 如何追踪 Reddit 上的品牌提及情况

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.8 或更高版本. 请求已安装库. Scavio API 密钥. 要监控的关键字(品牌名称、产品、竞争对手). Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

2026 年股票情绪数据的最佳 Reddit API

Read more
Best Of

2026 年最佳 Reddit API

Read more
Glossary

搜索 API 供应商格局(2026)

Read more
Solution

Reddit

Read more
Solution

Reddit Reddit API

Read more
Comparison

Reddit API / Search API vs Social Listening Tools (Brandwatch, Mention, Sprout Social)

Read more

开始构建

使用 Python 构建一个预定的 Reddit 监控代理,该代理会随着时间的推移区分搜索结果,并针对新品牌提及发出警报。使用 Scavio Reddit API。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策