Reddit API 只返回一个帖子

Edw*_* Yu 5 api reddit node.js

我正在尝试使用 API 获取 subreddit 中的所有链接,但它只返回一个 url。这是我的代码:

var request = require('request');
webpage = 'http://www.reddit.com/r/AmazonUnder5/top.json?limit=100';

//login
request.post('http://www.reddit.com/api/login',{form:{api_type:'json', passwd:'password', rem:true, user:'username'}});

//get urls
request({uri : webpage, json:true, headers:{useragent: 'mybot v. 0.0.1'}}, function(error, response, body) {
    if(!error && response.statusCode == 200) {
        for(var key in body.data.children) {
            var url = body.data.children[key].data.url;
            console.log(url);
        }

    }
});
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中访问 json 链接时,它会返回所有 100 个帖子。

Joh*_*ohn 2

那是因为顶部只存在 1

http://www.reddit.com/r/AmazonUnder5/top

你可以用热代替

http://www.reddit.com/r/AmazonUnder5/hot.json

此外,您不需要登录即可执行公共获取请求

编辑:您得到的结果很少,因为您没有正确登录

登录时,使用

"op" => "login"
Run Code Online (Sandbox Code Playgroud)

参数并测试返回哪些 cookie 和数据。

我还建议使用 ssl 登录 url,因为这对我有用

https://ssl.reddit.com/api/login/
Run Code Online (Sandbox Code Playgroud)

  • 我看到不止一个链接。当我在浏览器中访问此页面时,会显示 100 个链接:http://www.reddit.com/r/AmazonUnder5/top.json?limit=100 (2认同)