首页 > 解决方案 > 我应该如何解析和使用网站数据?我正在使用节点 js

问题描述

我正在使用节点 js 创建一个从 r6.tracker.network 获取统计信息的机器人,但是当我将它加载到数据中时,它不会像我将“www.google.com”作为主机时那样显示出来。我真的不知道从这里去哪里。我正在尝试使用几种不同的调试方法,但我还没有找到任何东西。没有输出。

function getWebpage(parameter){
const pathuser = '/profile/pc/' + parameter;
var http = require('http');

var options = {
    host: 'r6.tracker.network',
    path: '/'
}
var request = http.request(options, function (res) {
    
    var data = '';
    res.on('data', function (chunk) {
        data += chunk;
    });
    res.on('end', function () {
        console.log(data);
    });
});
request.on('error', function (e) {
    console.log(e.message);
});
request.end();

}

标签: htmlnode.jsparsingbufferedreader

解决方案


他们将您重定向到https他们网站的版本。

这里的关键是添加此日志记录:

console.log(res.statusCode);
console.log(res.headers.location);

当你这样做时,你会看到:

301
https://r6.tracker.network/

换句话说,他们希望您使用他们网站的 https 版本,并且他们正在重定向您这样做。您不会从 http URL 获取网页的内容。您必须使用 https。

在这里编码要点:

  1. 始终查看 http 状态,只有在收到 2xx 响应时才能正常进行。
  2. 为 3xx 重定向响应做好准备。

仅供参考,如果您使用更现代的库,例如此处got()列出的任何其他库,它们都会自动为您跟踪重定向,并且它们也会自动为您收集完整的响应。而且,他们使用更现代的基于 Promise 的异步编程方法。我真的建议您为出站 http 请求选择其中一个库。


推荐阅读