我有兴趣从不同的 reddit subreddits 获取数据。有谁知道是否有类似 twitter 的 reddit/其他 api 来抓取所有页面?
3 回答
是的,reddit 有一个 API 可用于各种目的,例如数据收集、自动评论机器人,甚至可以协助 subreddit 审核。
有几个地方可以发现有关 reddit API 的信息:
- github reddit wiki -- 提供使用 reddit API 的概述和规则(遵循规则)
- 自动生成的 API 文档——提供访问大多数API 端点所需的请求信息
- /r/redditdev -- reddit 社区致力于回答有关 reddit 源代码和有关 reddit API 的问题
如果您已经熟悉某种特定的编程语言,您应该查看针对各种语言的现有 API 包装器集。尽管我有偏见(我是包维护者),但我很确定PRAW对于 python 支持最多的 reddit API 功能。
请注意,如果您只是读取数据,并且对回发到 reddit 不感兴趣,那么您可以从与每个 subreddit 关联的 json 提要中获得相当多的数据。使用这种方法,您根本不需要担心 API ——您只需请求相关的 json 文件并用您选择的语言对其进行解析。
这是一个示例 URL,它将返回一个 json 对象,其中包含来自 Justrolledintotheshop 子版块的热门帖子: https ://www.reddit.com/r/Justrolledintotheshop/top.json
hot
您可以使用、new
或代替顶部controversial
。使用 top 时,您可以添加?t=day
到 url 的末尾以指定当天的置顶帖子。其他有效值为hour
、day
、week
、month
、year
或all
。
使用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
要更深入,请查看以下问题: