请求节点模块不给html

Raj*_*arg 4 javascript request node.js npm

我正在使用请求nodejs模块来获取网站的html,如下所示:

var request = require('request');

request("http://www.thenewschool.org/", function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log("body>>>>>>>>>>");
    } else {
        console.log("error>>>>>>>>>"+error);
        console.log("response statusCode>>>>>>>>>"+response.statusCode);
        console.log("response body>>>>>>>>>"+response.body);
    }
})
Run Code Online (Sandbox Code Playgroud)

这给了我这个输出

错误>>>>>>>>>空

响应statusCode >>>>>>>>> 403

响应正文>>>>>>>>>抱歉,由于用户代理无效,此请求已被阻止.

这种情况在大多数情况下都会过去,但在这种情况下失败,有人可以帮助我解决这个问题.

Rod*_*ros 9

你只需要传递user-agent标题(因为URL需要它),如:

var options = {
  headers: {'user-agent': 'node.js'}
}

request("http://www.thenewschool.org/", options, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log("body>>>>>>>>>>" + body);
  } else {
    console.log("error>>>>>>>>>"+error);
    console.log("response statusCode>>>>>>>>>"+response.statusCode);
    console.log("response body>>>>>>>>>"+response.body);
  }
})
Run Code Online (Sandbox Code Playgroud)


Jer*_*NER 5

好吧,您收到HTTP 403错误代码:访问被禁止.

这可能意味着您的请求已"被描述为""我们不希望您在这里":

  • 这可能是因为您的IP已被标记
  • 或者因为您缺少一个标题,使您的请求看起来像真正的浏览器.很可能是给出了答案正文的用户代理标题