ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建具有新近度过滤功能的 Reddit 需求扫描器
教程

如何构建具有新近度过滤功能的 Reddit 需求扫描器

构建一个具有 24 小时/7 天/30 天新近度切换功能的 Reddit 需求扫描仪。仅过滤最近的需求信号。 Python 教程。

获取免费API密钥API文档

r/SideProject 的后续问题询问如何按新近度过滤 Reddit 需求信号。关于想要一个产品的旧帖子可能已经过时了——有人可能已经构建了它。本教程向需求扫描器添加了新近度过滤:仅显示最近 24 小时、7 天或 30 天的需求信号。

前置条件

  • Scavio API 密钥
  • Python 3.8+

操作指南

步骤 1: 搜索 Reddit 并按新排序

使用排序参数首先获取最近的帖子。

Python
import requests, os
from datetime import datetime, timedelta
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def search_reddit_recent(query, sort='new'):
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=H,
        json={'platform': 'reddit', 'query': query, 'sort': sort}).json()
    return data.get('results', [])

步骤 2: 按最近时间窗口过滤

将结果过滤到所需的时间窗口。

Python
def filter_by_recency(results, window='7d'):
    windows = {'24h': 1, '7d': 7, '30d': 30}
    days = windows.get(window, 7)
    cutoff = datetime.now() - timedelta(days=days)
    recent = []
    for r in results:
        post_date = r.get('date', '')
        if post_date:
            try:
                dt = datetime.fromisoformat(post_date.replace('Z', '+00:00'))
                if dt.replace(tzinfo=None) >= cutoff:
                    recent.append(r)
            except ValueError:
                continue
    return recent

步骤 3: 通过新近度加权对需求进行评分

最近的帖子权重更高。

Python
def score_with_recency(results):
    scored = []
    now = datetime.now()
    for r in results:
        base_score = r.get('upvotes', 0) + r.get('comments', 0) * 2
        post_date = r.get('date', '')
        if post_date:
            try:
                dt = datetime.fromisoformat(post_date.replace('Z', '+00:00'))
                days_ago = (now - dt.replace(tzinfo=None)).days
                recency_multiplier = max(0.1, 1.0 - (days_ago / 30))
                r['demand_score'] = int(base_score * recency_multiplier)
            except ValueError:
                r['demand_score'] = base_score
        scored.append(r)
    return sorted(scored, key=lambda x: x.get('demand_score', 0), reverse=True)

步骤 4: 生成新近度过滤报告

按时间窗口显示需求信号。

Python
def demand_report(idea, windows=['24h', '7d', '30d']):
    results = search_reddit_recent(idea)
    for window in windows:
        filtered = filter_by_recency(results, window)
        scored = score_with_recency(filtered)
        print(f'\n--- {window} window ({len(filtered)} posts) ---')
        for r in scored[:5]:
            print(f'  [{r.get("demand_score", 0)}] {r.get("title", "")}')
            print(f'    r/{r.get("subreddit", "")} | {r.get("upvotes", 0)} upvotes')

demand_report('invoice tool for freelancers')

Python 示例

Python
import os, requests
from datetime import datetime, timedelta
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def recent_demand(idea, days=7):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'reddit', 'query': idea, 'sort': 'new'}).json()
    cutoff = datetime.now() - timedelta(days=days)
    recent = [r for r in data.get('results', []) if r.get('date', '') > cutoff.isoformat()]
    print(f'{len(recent)} posts in last {days} days for "{idea}"')
    return recent

JavaScript 示例

JavaScript
const res = await fetch('https://api.scavio.dev/api/v1/search', {
  method: 'POST',
  headers: {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'},
  body: JSON.stringify({platform: 'reddit', query: idea, sort: 'new'})
});
const data = await res.json();
const cutoff = new Date(Date.now() - 7 * 86400000);
const recent = data.results?.filter(r => new Date(r.date) >= cutoff);

预期输出

JSON
Reddit demand report with 24h/7d/30d windows. Each post has a recency-weighted demand score. Identifies fresh demand signals vs stale ones.

相关教程

  • 在构建副项目之前如何扫描 Reddit 寻找需求信号
  • 如何使用新近度和需求评分构建 REST API 包装 Scavio Reddit

常见问题

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

Scavio API 密钥. Python 3.8+. 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
Solution

Reddit Reddit API

Read more
Solution

Reddit

Read more
Comparison

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

Read more
Use Case

Reddit 交易情绪分析

Read more

开始构建

构建一个具有 24 小时/7 天/30 天新近度切换功能的 Reddit 需求扫描仪。仅过滤最近的需求信号。 Python 教程。

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

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

产品

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

开发者

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

替代方案

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

工具

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

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策