当前位置: 首页 > 知识库问答 >
问题:

Reddit API只返回一篇文章

支彭亮
2023-03-14

我试图使用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);
        }

    }
});

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

共有1个答案

朱炜
2023-03-14

这是因为顶部只有1个

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

你可以用hot代替

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

此外,您不需要登录来执行公共get请求

编辑:你得到这么少的结果,因为你没有正确登录

登录时,请使用

"op" => "login"

参数并测试返回的cookie和数据

我也推荐使用ssl登录url,因为那对我很有用

https://ssl.reddit.com/api/login/
 类似资料:
  • 我创建了这个函数来计算我要测量的距离: 由于我不明白的原因,距离的值只返回一次。因此,如果我在forEach函数中抛出2个位置,并且在循环中使用console.log,我会看到所有的计算都是正确的。但如果我返回距离的值,则只返回一个值。 如何正确返回值? 我使用VueJS,其中'Distance toResponder'是一个计算属性来填充表: 因此函数应该返回每个响应者的距离。那么我需要如何调整

  • 如何更改此设置以使每个用户仅获得一篇帖子: 这一个抛出一个错误: “Illumb/Database/Elount/RelationNotFoundException,消息为“调用模型[App/Models/User]上未定义的关系[]。” 用户使用了许多帖子。

  • 好的,基本上,我试图遍历大量包含文件超链接的html代码。我在用preg_match_all找到所有发生的事情。然而,它永远不会返回预期的匹配量。 快照HTML代码(值为$content): PHP代码: 上面的代码只为我返回第一个匹配项。奇怪的是,回荡着: 所以我想我应该数一数数组,然后把它绕成一个for循环来解决这个问题。然而:

  • 我试图在html页面的页脚部分实现Y的第X页。 我通过调用GetPageNumber(PdfPage)来检索X,通过调用GetNumberOfPages()来检索Y。 在iText. Kernel. Pdf中引用了PdfDocumi。但是每次我调用GetNumberOfPages()时,它每次只返回一个页面。 例如:当我的总页面为4时,我得到的页脚值如下所示。 第一页-

  • 本文向大家介绍一篇文章看懂JavaScript中的回调,包括了一篇文章看懂JavaScript中的回调的使用技巧和注意事项,需要的朋友参考一下 前言 回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promise、事件处理中。 本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。 回调函数 首先写一个向人打招呼的函数。 只需要创建一个接受 name 参数的函数

  • 我正在尝试将帖子ID添加到下一个和上一个帖子中。当前使用下面的代码给我带来了不希望看到的页面的post id的效果。