我正在尝试在一次 api 调用中从
random
subreddit
中提取随机帖子,但我不知道如何操作。这可能吗?如果不可能,我如何通过多个 api 调用和最小的开销来实现这一点?
以下请求返回随机值
subreddit
。
http://www.reddit.com/r/random.json
与人们对
json
扩展的期望相反,调用返回的数据是带有标记的完整网页,这不是我想要的。下面显示了与实际 subreddit
相同的请求。
http://www.reddit.com/r/apple.json
此请求会生成
subreddit
格式的苹果 json
。为了从苹果检索 5 个帖子subreddit
,可以进行以下 api 调用。
http://www.reddit.com/r/apple/comments.json?limit=5
我想我可以将上面的 api 调用应用到
random
url - 如下所示。
http://www.reddit.com/r/random/comments.json?limit=5
这按预期工作,但结果不是
json
格式。这是一个带有标记的完整网页。
链接:reddit API
更新
自我最初回复以来,/r/random 已更新以保留扩展名,因此您现在还可以避免手动处理
Location
标头:
$ curl http://www.reddit.com/r/random.json
{
"data": {
"after": "t3_1ubf3e",
...
原始回复
http://www.reddit.com/r/random 导致重定向到随机 subreddit,但不保留扩展名。此时,实现目标的最佳方法是检查
Location:
标头的响应,然后向该 subreddit 的 JSON 端点执行请求。
例如使用curl:
$ curl --include http://www.reddit.com/r/random
HTTP/1.1 302 Moved Temporarily
Location: http://www.reddit.com/r/cocktails/
...
reddit 说您应该查看“cocktails”子 reddit,因此请求该子 reddit 的 JSON 数据:
$ curl http://www.reddit.com/r/cocktails/.json
{
"data": {
"after": "t3_1ubf3e",
...
嘿,不完全是你要求的,但我这里有一个 subreddits 转储,你可以用于随机 martymc.fyi/prefixed_names_and_subs_250k.json