获取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
您可以使用hot
、new
或controversial
代替顶部。使用 top 时,您可以在 url 末尾添加?t=day
以指定当天的置顶帖子。其他有效值为hour
、day
、week
、month
、year
或all
。
【讨论】:
【参考方案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数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从某个 subreddit 获取多个用户的所有评论 - Reddit Dataset