knowhow.md 4.17 KB

Reddit Scraper 知识体系

版本: 1.0.0 来源: Hunter 调研数据结构化整理 用途: Reddit 内容抓取与短剧素材提取


1. Reddit 抓取技术方案对比

1.1 方案概览

方案 认证要求 速率限制 复杂度 适用场景
RSS/JSON Feed 无需 30 req/min/IP 低 快速原型、小规模抓取
PRAW (官方 API) OAuth2 60 req/min 中 生产环境、大规模抓取
网页爬取 无需 受限 高 绕过限制(不推荐)

1.2 RSS/JSON Feed 方案

技术实现

GET https://www.reddit.com/r/{subreddit}/hot.json?limit=50&t=week
Headers: User-Agent: Mozilla/5.0 (compatible; DramaScraper/1.0)

字段映射 | Reddit 字段 | 内部字段 | 说明 | |-------------|----------|------| | data.title | title | 帖子标题 | | data.selftext | body | 正文内容 | | data.ups | upvotes | 点赞数 | | data.num_comments | comments | 评论数 | | data.upvote_ratio | upvote_ratio | 赞踩比 | | data.created_utc | created_at | 发布时间(Unix 时间戳)| | data.id | post_id | 唯一标识符 |

1.3 PRAW 官方 API 方案

端点列表 | 端点 | 用途 | 返回 | |------|------|------| | /r/{sub}/hot | 热门帖子 | 帖子列表 | | /r/{sub}/top | 置顶帖子 | 帖子列表 | | /comments/{id} | 帖子详情 | 帖子 + 评论树 |


2. 戏剧性内容识别方法论

2.1 目标 Subreddit 评估矩阵

Subreddit 内容类型 戏剧张力 适用短剧类型
r/AmITheAsshole 道德困境/人际冲突 ★★★★★ 伦理冲突剧、家庭矛盾剧
r/relationship_advice 情感纠纷/关系危机 ★★★★☆ 爱情短剧、婚姻危机剧
r/funny 搞笑/意外 ★★★☆☆ 喜剧、反转剧

2.2 戏剧性评分算法

dramatic_score = (
  engagement_ratio × 0.25 +
  content_length_score × 0.15 +
  emotion_density × 0.30 +
  conflict_keywords_match × 0.30
) × 10

2.3 冲突关键词库

家庭矛盾: 父母、婆婆、老公、离婚、吵架、偏心、遗产、family、parents、divorce 职场冲突: 老板、同事、裁员、加班、辞职、升职、boss、coworker、layoff 情感纠纷: 出轨、分手、暗恋、劈腿、小三、cheating、breakup、affair 道德困境: 自私、背叛、撒谎、欺骗、selfish、betrayal、lying


3. 短剧素材提取 SOP

3.1 提取维度框架

  • setting: 场景设定(location, time, mood)
  • characters: 人物关系(role, relation, trait)
  • conflict: 冲突核心(type, trigger, escalation, climax)
  • dialogue_highlights: 精彩对话(金句、交锋)
  • turning_point: 转折点
  • emotional_arc: 情感弧线

3.2 高质量内容筛选标准

硬指标

  • 点赞数 > 2000(P0 Subreddit)
  • 评论数 > 100
  • 赞踩比 > 0.65

软指标

  • 评论/点赞比 > 0.1(高争议性)
  • 正文长度 500-3000 字
  • 戏剧性评分 > 7.0

4. JSON 输出格式规范

{
  "source": { "platform", "subreddit", "post_id", "url", "scraped_at" },
  "engagement": { "upvotes", "comments", "upvote_ratio", "dramatic_score" },
  "content": { "title", "body", "drama_tags", "conflict_type" },
  "drama_elements": {
    "setting": { "location", "time", "mood" },
    "characters": [{ "role", "relation", "trait" }],
    "conflict": { "type", "trigger", "escalation", "climax" },
    "dialogue_highlights": [],
    "turning_point": "",
    "emotional_arc": ""
  },
  "script_potential": {
    "hook_strength": 0-10,
    "viral_elements": [],
    "estimated_duration": "3-5 min",
    "genre_fit": []
  }
}

5. 常见陷阱和处理技巧

陷阱 现象 解决方案
429 Too Many Requests 请求被拒绝 实施指数退避重试;降低频率至 20 req/min
空内容 仅标题无正文 跳过或标记为 link_post
低质量翻译 中英文混合识别错误 使用语言检测库,分别处理
标签误判 关键词命中但非实际主题 结合上下文语义判断

文档版本: 1.0.0 | 生成时间: 2026-03-25