javascript - NodeJS HttpGet 方法在 Wiki 上不起作用

标签 javascript html node.js http http-get

目标

下载 Wiki 页面的 HTML。

背景

我正在尝试下载 Wiki 页面 ( http://warframe.wikia.com/wiki/Mods_2.0 ) 的 HTML 来解析信息。为了实现这一点,我正在使用 NodeJS,并且我正在使用它的 HTTP Request methods .

代码

我有一个非常简单的代码文件,它仅访问该网站并尝试打印其内容:

"use strict";

var http = require("http");

var options = {
  host: "http://warframe.wikia.com",
  port: 80,
  path: 'wiki/Mods_2.0',
  method: "GET"
};

var req = http.request(options, function(res) {

  console.log("STATUS: " + res.statusCode);
  console.log("HEADERS: " + JSON.stringify(res.headers));
  res.setEncoding('utf8');

  res.on("data", function (chunk) {
    console.log("BODY: " + chunk);
  });
});

req.end();

问题

问题是,无论我做什么,也无论我尝试什么,我总是得到以下错误输出:

Debugger listening on port 15454 events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo ENOTFOUND http://warframe.wikia.com http://warframe.wikia.com:80
    at errnoException (dns.js:27:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)


Process exited with code: 1

我相当确定我错误地构建了 URL,但不知何故我不明白如何解决这个问题!

我尝试了什么

我的做法是基于本次讨论的内容In Node.js / Express, how do I "download" a page and gets its HTML? .

我尝试了 options 变量中 URL 路径的多种组合,结果却得到了同一错误的不同版本。

我还读过In Node.js / Express, how do I "download" a page and gets its HTML? ,但是该讨论有一个不同的问题(它侧重于流媒体,这不是我的目标)。

问题

1 - 我相当确定这是一个简单的错误,但我看不到它。我错过了什么?

最佳答案

去掉url中的http并在路径中添加/:

"use strict";

var http = require("http");

var options = {
  host: "warframe.wikia.com",
  port: 80,
  path: '/wiki/Mods_2.0',
  method: "GET"
};

var req = http.request(options, function(res) {

  console.log("STATUS: " + res.statusCode);
  console.log("HEADERS: " + JSON.stringify(res.headers));
  //res.setEncoding('utf8');

  res.on("data", function (chunk) {
    console.log("BODY: " + chunk);
  });
});

req.end();

关于javascript - NodeJS HttpGet 方法在 Wiki 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38345775/

相关文章:

html - 如何在 H3 标签的每一侧格式化按钮

javascript - 如何将文本文件中的数据读取到变量中,以便我可以根据值更改颜色?

c# - 在 cors 主机中设置时,是否需要在 C# 中定义协议(protocol)

javascript - 如何更改 Google Analytics 中 "non-interaction"事件的默认值

javascript - facebook 喜欢和分享按钮 javascript 更新我的网页内容,例如重新加载页面

javascript - 初始化类以访问方法

javascript - 修改指定文件时如何运行vue-cli build命令?

javascript - 在mapbox-gl-js中,是否可以让 map 的中心不是 Canvas 的中心?

javascript - 无法在 chrome 下使用 javascript 控制表的可见性

javascript - 如何在 Discord.js 中创建 "+mention"命令