获取reddit数据[关闭]

Posted

技术标签:

【中文标题】获取reddit数据[关闭]【英文标题】:Obtaining reddit data [closed] 【发布时间】:2012-12-28 16:07:41 【问题描述】:

我有兴趣从不同的 reddit subreddit 获取数据。有谁知道是否有类似 twitter 的 reddit/other api 来抓取所有页面?

【问题讨论】:

【参考方案1】:

是的,reddit 有一个 API 可用于各种目的,例如数据收集、自动评论机器人,甚至可以协助 subreddit 审核。

有几个地方可以发现有关 reddit API 的信息:

github reddit wiki -- 提供使用reddit API的概述和规则(遵循规则) automatically generated API docs -- 提供访问大多数 API 端点所需的请求信息 /r/redditdev -- reddit 社区致力于回答有关 reddit 源代码和有关 reddit API 的问题

如果您已经熟悉某种特定的编程语言,您应该查看existing set of API wrappers 了解各种语言。尽管我有偏见(我是包维护者),但我很确定 PRAW,对于 python,支持最大数量的 reddit API 功能。

【讨论】:

【参考方案2】:

请注意,如果您只是读取数据,而不是对回帖到 reddit 感兴趣,您可以从与每个 subreddit 相关联的 json 提要中获得相当多的数据。使用这种方法,您根本不需要担心 API ——您只需请求相关的 json 文件并以您选择的语言对其进行解析。

这是一个示例 URL,它将返回一个 json 对象,其中包含来自 Justrolledintotheshop 子版块的热门帖子: https://www.reddit.com/r/Justrolledintotheshop/top.json

您可以使用hotnewcontroversial 代替顶部。使用 top 时,您可以在 url 末尾添加?t=day 以指定当天的置顶帖子。其他有效值为hourdayweekmonthyearall

【讨论】:

【参考方案3】:

使用 ajax/javascript 解析来自 reddit 的 JSON 数据。

Reddit 为 GET 请求启用了 CORS

这里以 JSON 格式解析 reddit 最后的视频

xhr = new XMLHttpRequest
xhr.open("GET","https://www.reddit.com/r/videos/.json",true)
xhr.send(null)
xhr.onreadystatechange = function() 
  if(this.status === 200) 
    console.log(JSON.parse(xhr.responseText))
  

https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest

要深入了解,请查看以下问题:

Change youtube video ID without page reloading

【讨论】:

以上是关于获取reddit数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 reddit 上获取工具提示文本?

如何获取访问令牌? (Reddit API)

从某个 subreddit 获取多个用户的所有评论 - Reddit Dataset

帮助获取 Reddit 帖子与 PRAW 链接到的 URL

获取使用特定 subreddit 的用户的 Reddit 用户名

从 XHR 请求中获取 BLOB 数据