# 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 输出格式规范 ```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*