【发布时间】:2012-12-28 16:07:41
【问题描述】:
我有兴趣从不同的 reddit subreddit 获取数据。有谁知道是否有类似 twitter 的 reddit/other api 来抓取所有页面?
【问题讨论】:
标签: web-scraping reddit
我有兴趣从不同的 reddit subreddit 获取数据。有谁知道是否有类似 twitter 的 reddit/other api 来抓取所有页面?
【问题讨论】:
标签: web-scraping reddit
是的,reddit 有一个 API 可用于各种目的,例如数据收集、自动评论机器人,甚至可以协助 subreddit 审核。
有几个地方可以发现有关 reddit API 的信息:
如果您已经熟悉某种特定的编程语言,您应该查看existing set of API wrappers 了解各种语言。尽管我有偏见(我是包维护者),但我很确定 PRAW,对于 python,支持最大数量的 reddit API 功能。
【讨论】:
请注意,如果您只是读取数据,而不是对回帖到 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。
【讨论】:
使用 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
要深入了解,请查看以下问题:
【讨论】: