html - 我应该如何解析和使用网站数据?我正在使用节点 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();
}
解决方案
他们将您重定向到https
他们网站的版本。
这里的关键是添加此日志记录:
console.log(res.statusCode);
console.log(res.headers.location);
当你这样做时,你会看到:
301
https://r6.tracker.network/
换句话说,他们希望您使用他们网站的 https 版本,并且他们正在重定向您这样做。您不会从 http URL 获取网页的内容。您必须使用 https。
在这里编码要点:
- 始终查看 http 状态,只有在收到 2xx 响应时才能正常进行。
- 为 3xx 重定向响应做好准备。
仅供参考,如果您使用更现代的库,例如此处got()
列出的任何其他库,它们都会自动为您跟踪重定向,并且它们也会自动为您收集完整的响应。而且,他们使用更现代的基于 Promise 的异步编程方法。我真的建议您为出站 http 请求选择其中一个库。
推荐阅读
- javascript - 如何在动画后将元素移回原点
- javascript - 期望字符串(用于内置组件)或类/函数(用于复合组件)但未定义
- python - 为什么在使用 pandas 读取 csv 时会自动删除前面的引号?
- c# - 我可以异步运行同步代码以获得性能吗?
- php - 将响应 curl 函数从字符串转换为对象或数组 PHP
- ios - 麦克风和扬声器播放时按钮无响应
- python - Python 和 Matlab 的结果略有不同
- django - Django 序列化器字符串浮动
- ui-automation - UIATable 操作 GetCellValue 引发错误“由于从 UI 自动化继承的 API 调用缺失或损坏而失败”
- python - 在python中重命名多个文件并在前面计数