You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改R语言pullpush.io代码:从comments转submissions并支持多关键词搜索

解决方案

关键改动说明

  1. 切换API端点:将原代码中拉取评论的/reddit/search/comment/替换为拉取帖子的/reddit/search/submission/,这是获取submissions的核心调整。
  2. 多关键词搜索:在q参数中用+分隔多个关键词(默认是逻辑AND,即帖子需同时包含所有关键词;若需逻辑OR,用|分隔,比如q=GPT|code)。
  3. 适配Submission字段:Submission的正文字段是selftext(对应评论的body),新增title字段便于区分帖子,同时简化空值处理逻辑。

修改后的完整代码

library(jsonlite)
library(tidyverse)
library(httr)

# 初始化存储变量
title <- c()
selftext <- c()
author_created_utc <- c()
author_fullname <- c()
permalink <- c()

# 时间范围设置
after <- as.POSIXct("2022-11-30", tz = "UTC")
before <- as.POSIXct("2022-12-01", tz = "UTC")

# 指定目标subreddit和搜索关键词
target_subreddit <- "machinelearning"
search_keywords <- "GPT+code" # 多关键词用+分隔(AND逻辑),OR逻辑用"GPT|code"

repeat {
  # 构造API请求URL
  command <- paste0(
    "https://api.pullpush.io/reddit/search/submission/?",
    "q=", search_keywords,
    "&subreddit=", target_subreddit,
    "&sort=desc&size=100",
    "&before=", as.integer(before),
    "&after=", as.integer(after)
  )
  
  # 发送请求并解析数据
  response <- GET(command)
  submissions <- content(response)$data
  
  # 遍历收集数据
  for (sub in submissions) {
    # 收集标题
    title <- c(title, ifelse(is.null(sub$title), "无标题", sub$title))
    # 收集帖子内容
    selftext <- c(selftext, ifelse(is.null(sub$selftext), "", sub$selftext))
    # 收集作者创建时间
    author_created_utc <- c(author_created_utc, ifelse(is.null(sub$author_created_utc), 0, sub$author_created_utc))
    # 收集作者ID
    author_fullname <- c(author_fullname, ifelse(is.null(sub$author_fullname), "Unknown", sub$author_fullname))
    # 收集完整帖子链接
    permalink <- c(permalink, ifelse(is.null(sub$permalink), "Unknown", paste0("https://reddit.com", sub$permalink)))
  }
  
  # 推进时间窗口
  after <- after + 86400
  before <- before + 86400
  print(before)
  
  # 终止条件:到达结束日期
  if (before == as.POSIXct("2023-01-01", tz = "UTC")) {
    output <- data.frame(title, selftext, author_created_utc, author_fullname, permalink)
    break # 用break替代stop,避免报错式终止
  }
}

额外说明

  • 关键词逻辑可灵活调整:
    • AND逻辑:关键词用+分隔(如GPT+code,筛选同时包含GPT和code的帖子)
    • OR逻辑:关键词用|分隔(如GPT|code,筛选包含GPT或code的帖子)
  • 代码新增title字段,更贴合帖子的内容特征;同时将permalink补全为完整Reddit链接,方便直接访问。
  • 用ifelse简化空值判断,替代原代码的多分支结构,代码更简洁易读。

内容的提问来源于stack exchange,提问作者Ejudah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 08:34:37